emcObjectManager.h

Go to the documentation of this file.
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& /*object*/) const
00090   {
00091     return false;
00092   }
00093 
00097   virtual bool CanRead(const emcManageable& /*object*/) const
00098   {
00099     return false;
00100   }
00101 
00111   virtual emcManageable* Collect(const emcManageable& /*object*/,
00112                                  const PHTimeStamp& /*when*/)
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& /*object*/, int /*runnumber*/)
00138   {
00139     return false;
00140   }
00141 
00143   virtual bool ReadPreviousVersion(emcManageable& object,
00144                                    const PHTimeStamp& time_stamp,
00145                                    int id,
00146                                    int /*version*/ = 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