![]() |
|
|
Generated: 18 Jul 2008 |
00001 // $Id: DetDataSvc.h,v 1.13 2007/02/26 18:18:05 hmd Exp $ 00002 #ifndef DETECTORDATASVC_DETDATASVC_H 00003 #define DETECTORDATASVC_DETDATASVC_H 00004 00005 // Base classes 00006 #include "GaudiKernel/DataSvc.h" 00007 #include "GaudiKernel/IDetDataSvc.h" 00008 #include "GaudiKernel/IIncidentListener.h" 00009 #include "GaudiKernel/Time.h" 00010 00011 // Forward declarations 00012 class StatusCode; 00013 class IAddressCreator; 00014 00016 //-------------------------------------------------------------------------- 00023 00024 class DetDataSvc : public DataSvc, 00025 virtual public IDetDataSvc, 00026 virtual public IIncidentListener 00027 { 00028 00029 friend class SvcFactory<DetDataSvc>; 00030 00031 // unhides DataSvc updateObject methods 00032 using DataSvc::updateObject; 00033 00034 public: 00035 00036 // Overloaded DataSvc methods 00037 00039 virtual StatusCode initialize(); 00040 00042 virtual StatusCode reinitialize(); 00043 00045 virtual StatusCode finalize(); 00046 00048 virtual StatusCode clearStore(); 00049 00051 virtual StatusCode updateObject( DataObject* toUpdate ); 00052 00054 DetDataSvc(const std::string& name, ISvcLocator* svc); 00055 00057 virtual ~DetDataSvc(); 00058 00059 private: 00061 StatusCode setupDetectorDescription(); 00062 00063 public: 00064 00065 // Reimplemented from IInterface 00066 00068 virtual StatusCode queryInterface( const InterfaceID& riid, 00069 void** ppvInterface ); 00070 00071 public: 00072 00073 // Implementation of the IDetDataSvc interface 00074 00077 virtual const bool validEventTime() const ; 00078 00080 virtual const Gaudi::Time& eventTime() const ; 00081 00083 virtual void setEventTime( const Gaudi::Time& time ); 00084 00085 public: 00086 00087 // Implementation of the IIncidentListener interface 00088 00090 virtual void handle( const Incident& ); 00091 00092 private: 00093 00095 int m_detStorageType; 00096 00098 std::string m_detDbLocation; 00099 00101 std::string m_detDbRootName; 00102 00104 std::string m_persistencySvcName; 00105 00107 bool m_usePersistency; 00108 00110 Gaudi::Time m_eventTime; 00111 00113 IAddressCreator* m_addrCreator; 00114 00115 }; 00116 00117 #endif // DETECTORDATASVC_DETDATASVC_H 00118 00119 00120 00121