00001 // $Id: EventClockSvc.h,v 1.3 2006/09/26 10:45:48 marcocle Exp $ 00002 #ifndef EVENTCLOCKSVC_H 00003 #define EVENTCLOCKSVC_H 1 00004 00005 // Include files 00006 #include "GaudiKernel/Service.h" 00007 #include "GaudiKernel/IIncidentListener.h" 00008 00009 class IEventTimeDecoder; 00010 class IToolSvc; 00011 00019 class EventClockSvc: public virtual Service, public virtual IIncidentListener { 00020 public: 00022 EventClockSvc(const std::string& name, ISvcLocator* svcloc); 00023 00024 virtual ~EventClockSvc( ); 00025 00030 virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvUnknown); 00031 00033 virtual StatusCode initialize(); 00034 00036 virtual StatusCode finalize(); 00037 00038 // ---- Implement IIncidentListener interface ---- 00040 virtual void handle(const Incident &inc); 00041 00042 protected: 00043 00044 private: 00045 00047 friend class SvcFactory<EventClockSvc>; 00048 00049 // ---------- data members ---------- 00050 // --- names --- 00052 std::string m_detDataSvcName; 00054 std::string m_eventTimeDecoderName; 00055 00056 // --- services --- 00058 IIncidentSvc *m_incidentSvc; 00060 IDetDataSvc *m_detDataSvc; 00062 IToolSvc *m_toolSvc; 00063 00064 // --- tools --- 00066 IEventTimeDecoder *m_eventTimeDecoder; 00067 00068 00069 // --- misc --- 00071 long long m_initialTime; 00072 00073 }; 00074 #endif // EVENTCLOCKSVC_H