00001
00012 #include <stdlib.h>
00013 #include <stdio.h>
00014 #include <errno.h>
00015 #include <math.h>
00016
00017 #include "powerflow.h"
00018 #include "powerflow_library.h"
00019
00021
00023 CLASS* powerflow_library::oclass = NULL;
00024 CLASS* powerflow_library::pclass = NULL;
00025
00026 powerflow_library::powerflow_library(MODULE *mod)
00027 {
00028 if (oclass==NULL)
00029 {
00030 oclass = gl_register_class(mod,"powerflow_library",sizeof(powerflow_library),PC_NOSYNC);
00031 if (oclass==NULL)
00032 GL_THROW("unable to register object class implemented by %s",__FILE__);
00033 }
00034 }
00035
00036 powerflow_library::powerflow_library(CLASS *oclass)
00037 {
00038 gl_create_foreign((OBJECT*)this);
00039 }
00040
00041 int powerflow_library::isa(char *classname)
00042 {
00043 return strcmp(classname,"powerflow_library")==0;
00044 }
00045
00046 int powerflow_library::create(void)
00047 {
00048 return 1;
00049 }
00050
00051 int powerflow_library::init(OBJECT *parent)
00052 {
00053 return 1;
00054 }
00055
00057
00059
00067 EXPORT int create_powerflow_library(OBJECT **obj, OBJECT *parent)
00068 {
00069 try
00070 {
00071 *obj = gl_create_object(powerflow_library::oclass);
00072 if (*obj!=NULL)
00073 {
00074 powerflow_library *my = OBJECTDATA(*obj,powerflow_library);
00075 gl_set_parent(*obj,parent);
00076 return my->create();
00077 }
00078 }
00079 catch (const char *msg)
00080 {
00081 gl_error("create_powerflow_library: %s", msg);
00082 }
00083 return 0;
00084 }
00085
00092 EXPORT int init_powerflow_library(OBJECT *obj)
00093 {
00094 powerflow_library *my = OBJECTDATA(obj,powerflow_library);
00095 try {
00096 return my->init(obj->parent);
00097 }
00098 catch (const char *msg)
00099 {
00100 GL_THROW("%s (powerflow_library:%d): %s", my->get_name(), my->get_id(), msg);
00101 return 0;
00102 }
00103 }
00104
00113 EXPORT TIMESTAMP sync_powerflow_library(OBJECT *obj, TIMESTAMP t0, PASSCONFIG pass)
00114 {
00115 powerflow_library *pObj = OBJECTDATA(obj,powerflow_library);
00116 try {
00117 switch (pass) {
00118 case PC_PRETOPDOWN:
00119 case PC_BOTTOMUP:
00120 case PC_POSTTOPDOWN:
00121 default:
00122 throw "invalid pass request";
00123 }
00124 } catch (const char *error) {
00125 GL_THROW("%s (powerflow_library:%d): %s", pObj->get_name(), pObj->get_id(), error);
00126 return 0;
00127 } catch (...) {
00128 GL_THROW("%s (powerflow_library:%d): %s", pObj->get_name(), pObj->get_id(), "unknown exception");
00129 return 0;
00130 }
00131 }
00132
00133 EXPORT int isa_powerflow_library(OBJECT *obj, char *classname)
00134 {
00135 return OBJECTDATA(obj,powerflow_library)->isa(classname);
00136 }
00137