00001 #ifndef __EMCOBJECTMANAGER_H__
00002 #define __EMCOBJECTMANAGER_H__
00003
00004 #ifndef __EMCNAMED_H__
00005 #include "emcNamed.h"
00006 #endif
00007
00008 class emcManageable;
00009 class PHTimeStamp;
00010 class emcDataManager;
00011
00064 class emcObjectManager : public emcNamed
00065 {
00066
00067 public:
00068
00070 emcObjectManager(const char* name = "", const char* title = "");
00071
00073 virtual ~emcObjectManager();
00074
00078 virtual bool CanCollect(const emcManageable&) const
00079 {
00080 return false;
00081 }
00082
00084 virtual bool CanHandle(const emcManageable& object) const;
00085
00089 virtual bool CanWrite(const emcManageable& ) const
00090 {
00091 return false;
00092 }
00093
00097 virtual bool CanRead(const emcManageable& ) const
00098 {
00099 return false;
00100 }
00101
00111 virtual emcManageable* Collect(const emcManageable& ,
00112 const PHTimeStamp& )
00113 {
00114 return 0;
00115 }
00116
00117
00119 static emcDataManager* DataManager(void);
00121 static emcDataManager* DM(void)
00122 {
00123 return DataManager();
00124 }
00125
00129 virtual bool Read(emcManageable& object,
00130 const PHTimeStamp& time_stamp,
00131 int id) = 0;
00132
00133
00137 virtual bool Read(emcManageable& , int )
00138 {
00139 return false;
00140 }
00141
00143 virtual bool ReadPreviousVersion(emcManageable& object,
00144 const PHTimeStamp& time_stamp,
00145 int id,
00146 int = 0)
00147 {
00148 return Read(object, time_stamp, id);
00149 }
00150
00154 virtual void Reset(void) = 0;
00155
00159 virtual bool Write(const emcManageable& object,
00160 const PHTimeStamp& tStart,
00161 int id = -1) = 0;
00162 };
00163
00164 #endif