EXPORT int create_node(OBJECT **obj, OBJECT *parent) { *obj = gl_create_object(node_class); if (*obj!=NULL) { last_node = *obj; node *my = OBJECTDATA(*obj,node); gl_set_parent(*obj,parent); my->create(); return 1; } return 0; }
////////////////////////////////////////////////////////////////////////// // IMPLEMENTATION OF CORE LINKAGE ////////////////////////////////////////////////////////////////////////// EXPORT int create_refrigerator(OBJECT **obj, OBJECT *parent) { *obj = gl_create_object(refrigerator::oclass); if (*obj!=NULL) { refrigerator *my = OBJECTDATA(*obj,refrigerator);; gl_set_parent(*obj,parent); my->create(); return 1; } return 0; }
EXPORT int create_link(OBJECT **obj, OBJECT *parent) { *obj = gl_create_object(link_class); if (*obj!=NULL) { last_link = *obj; link *my = OBJECTDATA(*obj,link); gl_set_parent(*obj,parent); my->create(); return 1; } return 0; }
EXPORT int create_baseMVA(OBJECT **obj) { try { *obj = gl_create_object(baseMVA::oclass); if (*obj!=NULL) return OBJECTDATA(*obj,baseMVA)->create(); } catch (char *msg) { gl_error("create_baseMVA: %s", msg); } return 0; }
EXPORT int create_line(OBJECT **obj) { try { *obj = gl_create_object(line::oclass); if (*obj!=NULL) return OBJECTDATA(*obj,line)->create(); } catch (char *msg) { gl_error("create_line: %s", msg); } return 0; }
EXPORT int create_CLASSNAME(OBJECT **obj) { try { *obj = gl_create_object(CLASSNAME::oclass); if (*obj!=NULL) return OBJECTDATA(*obj,CLASSNAME)->create(); } catch (char *msg) { gl_error("create_CLASSNAME: %s", msg); } return 0; }
EXPORT int create_range(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(range::oclass); if (*obj!=NULL) { range *my = OBJECTDATA(*obj,range);; gl_set_parent(*obj,parent); my->create(); return 1; } return 0; } CREATE_CATCHALL(range); }
/** * REQUIRED: allocate and initialize an object. * * @param obj a pointer to a pointer of the last object in the list * @param parent a pointer to the parent of this object * @return 1 for a successfully created object, 0 for error */ EXPORT int create_relay(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(relay::oclass); if (*obj!=NULL) { relay *my = OBJECTDATA(*obj,relay); gl_set_parent(*obj,parent); return my->create(); } else return 0; } CREATE_CATCHALL(relay); }
/** * REQUIRED: allocate and initialize an object. * * @param obj a pointer to a pointer of the last object in the list * @param parent a pointer to the parent of this object * @return 1 for a successfully created object, 0 for error */ EXPORT int create_voltdump(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(voltdump::oclass); if (*obj!=NULL) { voltdump *my = OBJECTDATA(*obj,voltdump); gl_set_parent(*obj,parent); return my->create(); } else return 0; } CREATE_CATCHALL(voltdump); }
EXPORT int create_microturbine(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(microturbine::oclass); if (*obj!=NULL) { microturbine *my = OBJECTDATA(*obj,microturbine); gl_set_parent(*obj,parent); return my->create(); } else return 0; } CREATE_CATCHALL(microturbine); }
EXPORT int create_windturb_dg(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(windturb_dg::oclass); if (*obj!=NULL) { windturb_dg *my = OBJECTDATA(*obj,windturb_dg); gl_set_parent(*obj,parent); return my->create(); } else return 0; } CREATE_CATCHALL(windturb_dg); }
EXPORT int create_switch(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(switch_object::oclass); if (*obj!=NULL) { switch_object *my = OBJECTDATA(*obj,switch_object); gl_set_parent(*obj,parent); return my->create(); } else return 0; } CREATE_CATCHALL(switch); }
EXPORT int create_series_reactor(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(series_reactor::oclass); if (*obj!=NULL) { series_reactor *my = OBJECTDATA(*obj,series_reactor); gl_set_parent(*obj,parent); return my->create(); } else return 0; } CREATE_CATCHALL(series_reactor); }
EXPORT int create_inverter(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(inverter::oclass); if (*obj!=NULL) { inverter *my = OBJECTDATA(*obj,inverter); gl_set_parent(*obj,parent); return my->create(); } else return 0; } CREATE_CATCHALL(inverter); }
EXPORT int create_metrics(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(metrics::oclass); if (*obj!=NULL) { metrics *my = OBJECTDATA(*obj,metrics); gl_set_parent(*obj,parent); return my->create(); } else return 0; } CREATE_CATCHALL(metrics); }
/** * REQUIRED: allocate and initialize an object. * * @param obj a pointer to a pointer of the last object in the list * @param parent a pointer to the parent of this object * @return 1 for a successfully created object, 0 for error */ EXPORT int create_powerflow_library(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(powerflow_library::oclass); if (*obj!=NULL) { powerflow_library *my = OBJECTDATA(*obj,powerflow_library); gl_set_parent(*obj,parent); return my->create(); } else return 0; } CREATE_CATCHALL(powerflow_library); }
/** * REQUIRED: allocate and initialize an object. * * @param obj a pointer to a pointer of the last object in the list * @param parent a pointer to the parent of this object * @return 1 for a successfully created object, 0 for error */ EXPORT int create_triplex_load(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(triplex_load::oclass); if (*obj!=NULL) { triplex_load *my = OBJECTDATA(*obj,triplex_load); gl_set_parent(*obj,parent); return my->create(); } else return 0; } CREATE_CATCHALL(triplex_load); }
EXPORT int create_solar_service(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(solar_service::oclass); if (*obj!=NULL) { solar_service *my = OBJECTDATA(*obj,solar_service); gl_set_parent(*obj,parent); return my->create(); } else return 0; } CREATE_CATCHALL(solar_service); }
EXPORT int create_substation(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(substation::oclass); if (*obj!=NULL) { substation *my = OBJECTDATA(*obj,substation); gl_set_parent(*obj,parent); return my->create(); } else return 0; } CREATE_CATCHALL(substation); }
EXPORT int create_matlab(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(oclass,sizeof(mxArray*)); if (*obj!=NULL) { gl_set_parent(*obj,parent); char createcall[1024]; if (engPutVariable(engine,"object",defaults)) { gl_error("matlab::%s_create(...) unable to set defaults for object", oclass->name); throw "create failed"; } if (parent) { // @todo transfer parent data in matlab create call mxArray *pParent = mxCreateStructMatrix(0,0,0,NULL); engPutVariable(engine,"parent",pParent); sprintf(createcall,"create(object,parent)"); } else sprintf(createcall,"create(object,[])"); if (engEvalString(engine,createcall)!=0) { gl_error("matlab::%s_create(...) unable to evaluate '%s' in Matlab", oclass->name, createcall); throw "create failed"; } else gl_matlab_output(); mxArray *ans= engGetVariable(engine,"ans"); mxArray **my = OBJECTDATA(*obj,mxArray*); if (ans && mxIsClass(ans,oclass->name)) *my = engGetVariable(engine,"ans"); else { *my = NULL; gl_error("matlab::@%s/create(...) failed to return an object of class %s",oclass->name,oclass->name); throw "create failed"; } return 1; } else throw "create failed due to memory allocation failure"; }
EXPORT int create_waterheater(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(waterheater::oclass); if (*obj!=NULL) { waterheater *my = OBJECTDATA(*obj,waterheater);; gl_set_parent(*obj,parent); my->create(); return 1; } else return 0; } CREATE_CATCHALL(waterheater); }
EXPORT int create_plugload(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(plugload::oclass); if (*obj!=NULL) { plugload *my = OBJECTDATA(*obj,plugload);; gl_set_parent(*obj,parent); my->create(); return 1; } else return 0; } CREATE_CATCHALL(plugload); }
EXPORT int create_virtual_battery(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(virtual_battery::oclass); if (*obj!=NULL) { virtual_battery *my = OBJECTDATA(*obj,virtual_battery);; gl_set_parent(*obj,parent); my->create(); return 1; } else return 0; } CREATE_CATCHALL(virtual_battery); }
EXPORT int create_house_a(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(house::oclass); if (*obj!=NULL) { house *my = OBJECTDATA(*obj,house);; gl_set_parent(*obj,parent); my->create(); return 1; } else return 0; } CREATE_CATCHALL(house_a); }
EXPORT int create_multizone(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(multizone::oclass); if (*obj!=NULL) { multizone *my = OBJECTDATA(*obj,multizone); gl_set_parent(*obj,parent); return my->create(); } } catch (char *msg) { gl_error("create_multizone: %s", msg); } return 1; }
/** * REQUIRED: allocate and initialize an object. * * @param obj a pointer to a pointer of the last object in the list * @param parent a pointer to the parent of this object * @return 1 for a successfully created object, 0 for error */ EXPORT int create_recloser(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(recloser::oclass); if (*obj!=NULL) { recloser *my = OBJECTDATA(*obj,recloser); gl_set_parent(*obj,parent); return my->create(); } } catch (const char *msg) { gl_error("create_recloser: %s", msg); } return 0; }
/** * REQUIRED: allocate and initialize an object. * * @param obj a pointer to a pointer of the last object in the list * @param parent a pointer to the parent of this object * @return 1 for a successfully created object, 0 for error */ EXPORT int create_triplex_node(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(triplex_node::oclass); if (*obj!=NULL) { triplex_node *my = OBJECTDATA(*obj,triplex_node); gl_set_parent(*obj,parent); return my->create(); } } catch (const char *msg) { gl_error("create_triplex_node: %s", msg); } return 0; }
EXPORT int create_energy_storage(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(energy_storage::oclass,sizeof(energy_storage)); if (*obj!=NULL) { energy_storage *my = OBJECTDATA(*obj,energy_storage); gl_set_parent(*obj,parent); return my->create(); } } catch (char *msg) { gl_error("create_energy_storage: %s", msg); } return 0; }
/** * REQUIRED: allocate and initialize an object. * * @param obj a pointer to a pointer of the last object in the list * @param parent a pointer to the parent of this object * @return 1 for a successfully created object, 0 for error */ EXPORT int create_billdump(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(billdump::oclass); if (*obj!=NULL) { billdump *my = OBJECTDATA(*obj,billdump); gl_set_parent(*obj,parent); return my->create(); } } catch (const char *msg) { gl_error("create_billdump: %s", msg); } return 0; }
/** * REQUIRED: allocate and initialize an object. * * @param obj a pointer to a pointer of the last object in the list * @param parent a pointer to the parent of this object * @return 1 for a successfully created object, 0 for error */ EXPORT int create_powerflow_object(OBJECT **obj, OBJECT *parent) { try { *obj = gl_create_object(powerflow_object::oclass); if (*obj!=NULL) { powerflow_object *my = OBJECTDATA(*obj,powerflow_object); gl_set_parent(*obj,parent); return my->create(); } } catch (const char *msg) { gl_error("create_powerflow_object: %s", msg); } return 0; }