00001
00002 #ifndef oSysDatabase_h
00003 #define oSysDatabase_h 1
00004
00005
00006 #include "d_Varray.h"
00007 #include "d_Object.h"
00008 #include "d_Dictionary.h"
00009
00010 #include "oSysClass.h"
00011 #include "oSysLog.h"
00012 #include "oSysSegment.h"
00013
00014 class _ODLL oDomain;
00015
00016 class oSysDatabase : public d_Object
00017 {
00018 public:
00019 oSysDatabase( const char* iName, const char* iUrl );
00020
00021 void d_activate();
00022 void d_deactivate();
00023
00024
00025 d_Ref<oSysClass> getClass( const char* iClassName );
00026 d_Ref<oSysClass> addClass( d_String iName, d_ULong iStart, d_ULong iStep );
00027 void renameClass( d_String iOldName, d_String iNewName );
00028 void removeClass( d_String iName );
00029
00030
00031 void addDataSeg( d_String iPath, d_ULong iStart, d_ULong iStep );
00032 void changeSizeDataSeg( d_String iPath, d_ULong iValue );
00033 void changeStepDataSeg( d_String iPath, d_ULong iValue );
00034 void removeDataSeg( d_String iPath );
00035
00036 d_Dictionary< d_String, d_String >& getNotes();
00037 d_String getNote( const char* iNote );
00038 void setNote( const char* iNote, const char* iValue );
00039
00040
00041 const char* getName();
00042 const char* getUrl();
00043 oDomain* getDomain();
00044
00045
00046 oSysDatabase( d_Object::DynaFactoryConstructor* iObj ){;}
00047
00048 private:
00049 d_String name;
00050 d_String url;
00051
00052 d_Dictionary< d_String, d_Ref< oSysClass > > classes;
00053 d_Varray< d_Ref< oSysSegment > > dataSegs;
00054 d_Dictionary< d_String, d_String > notes;
00055
00056 oDomain* domain;
00057
00058
00059 friend class oSysClass;
00060 friend class oStorage;
00061 };
00062
00063
00064
00065 #endif
00066