00001
00007 #ifndef _ASSERT_H
00008 #define _ASSERT_H
00009
00010 #include "gridlabd.h"
00011
00012 class g_assert : public gld_object {
00013 public:
00014 typedef enum {AS_INIT=0, AS_TRUE=1, AS_FALSE=2, AS_NONE=3} ASSERTSTATUS;
00015
00016 GL_ATOMIC(enumeration,status);
00017 GL_STRING(char1024,target);
00018 GL_STRING(char32,part);
00019 GL_ATOMIC(enumeration,relation);
00020 GL_STRING(char1024,value);
00021 GL_STRING(char1024,value2);
00022
00023 private:
00024 ASSERTSTATUS evaluate_status(void);
00025
00026 public:
00027
00028 g_assert(MODULE *module);
00029 int create(void);
00030 int init(OBJECT *parent);
00031 TIMESTAMP commit(TIMESTAMP t1, TIMESTAMP t2);
00032 int postnotify(PROPERTY *prop, char *value);
00033 inline int prenotify(PROPERTY *prop, char *value) { return 1; };
00034
00035 public:
00036 static CLASS *oclass;
00037 static g_assert *defaults;
00038 };
00039
00040 #endif // _ASSERT_H