/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Calibration/CalibSvc/CalibDataSvc/CalibDataSvc-00-01-04/CalibDataSvc/CalibDataSvc.h

Go to the documentation of this file.
00001 // $Header: /bes/bes/BossCvs/Calibration/CalibSvc/CalibDataSvc/CalibDataSvc/CalibDataSvc.h,v 1.15 2014/04/18 05:01:11 maqm Exp $
00002 #ifndef CalibDataSvc_h
00003 #define CalibDataSvc_h
00004 
00005 // Base classes
00006 #include "GaudiKernel/DataSvc.h"
00007 #include "GaudiKernel/IDetDataSvc.h"
00008 #include "GaudiKernel/IIncidentListener.h"
00009 #include "CalibData/CalibBase1.h"
00010 #include "CalibDataSvc/IInstrumentName.h"
00011 //#include "CalibData/CalibTime.h"
00012 using namespace CalibData;
00013 // Forward declarations
00014 //class ITime;
00015 class StatusCode;
00016 class IDataProviderSvc;
00017 
00032 class IAddressCreator;
00033 class MsgStream;
00034 
00035 template <class TYPE> class SvcFactory;  //maqm add
00036 class CalibDataSvc  : public DataSvc,
00037 //                      virtual public IDetDataSvc,
00038                       virtual public IIncidentListener
00039  //                     virtual public IInstrumentName
00040 {    
00041 
00042  friend class SvcFactory<CalibDataSvc>;
00043 
00044 public:
00045   
00046   // Overloaded DataSvc methods
00047 
00048   virtual StatusCode initialize();
00049   
00050   virtual StatusCode finalize();
00051   
00053   virtual StatusCode clearStore();
00054   
00056   virtual StatusCode updateObject( DataObject* toUpdate );
00057 
00060   virtual StatusCode loadObject(IConversionSvc* pLoader, IRegistry* pRegistry);
00061 
00062   virtual StatusCode retrieveObject(const std::string& fullPath,DataObject*& pObject);  
00063 
00064   virtual StatusCode registerObject(const std::string& parentPath,
00065                                     const std::string& objPath,
00066                                     DataObject* pObject);
00067 
00068 
00069 //maqm protected:
00070 public:
00071   CalibDataSvc(const std::string& name, ISvcLocator* svc);
00072   virtual ~CalibDataSvc();
00073   
00074 public:
00075   
00076   // Reimplemented from IInterface
00077 
00079   virtual StatusCode queryInterface( const InterfaceID& riid, 
00080                                      void** ppvInterface );  
00081 
00082 
00083 public:
00084   //get the CalibType from  CalibDataSvc, either  MYSQL_StorageType or CALIBROOT_StorageType;
00085 //  int  getsvctype(){return m_calibStorageType;}
00086 
00087 public:
00088   
00089   // Implementation of the IIncidentListener interface
00090 
00092   virtual void handle( const Incident& );
00093 
00095  private:
00096  StatusCode updateRun(int &runfrm,int &runto,std::string& fullPath);
00097  //properties
00099  // int              m_calibStorageType;
00100 
00101   // classfy the Data Persistency Storage type by each calib type
00102   int m_calibType[12];
00103 
00105   std::string      m_calibRootName;
00106 
00108   StringArrayProperty m_calibList;
00109 
00110   //  StringArrayProperty m_flavorList;
00111   std::vector<std::string>  m_flavorList;
00112 
00113 
00115  // bool m_newEvent;
00116 
00118  // CalibData::CalibTime m_time;
00119 
00120   IDataProviderSvc* m_eventSvc;
00126 //  bool  m_useEventTime;
00127 
00128 
00130   StatusCode makeFlavorNodes(IAddressCreator*  calibCreator, 
00131                              MsgStream* log );
00132 
00135   // StatusCode updateTime();
00136 
00137   
00138 /*
00139   enum TIMESOURCE {
00140     TIMESOURCEnone = 0,
00141     TIMESOURCEdata,
00142     TIMESOURCEmc,
00143     TIMESOURCEclock,
00144     TIMESOURCEdigi
00145   };
00146 
00147   TIMESOURCE m_timeSourceEnum;
00148 
00149   std::string m_startTimeAsc;
00150 
00152   long m_startTime;
00153 
00155   long m_delayTime;*/
00156 
00157 };
00158 
00159 #endif //  CalibDataSvc_h
00160 
00161 
00162 

Generated on Tue Nov 29 22:57:50 2016 for BOSS_7.0.2 by  doxygen 1.4.7