00001 // $Id: OfflineEventLoopMgr.h,v 1.6 2011/02/15 06:57:12 dengzy Exp $ 00002 #ifndef OFFLINE_EVENTLOOPMGR_H 00003 #define OFFLINE_EVENTLOOPMGR_H 00004 00005 // Framework include files 00006 #include "GaudiKernel/IEvtSelector.h" 00007 #include "GaudiKernel/MinimalEventLoopMgr.h" 00008 #include "GaudiKernel/SvcFactory.h" 00009 00010 // Forward declarations 00011 class IIncidentSvc; 00012 class IDataManagerSvc; 00013 class IDataProviderSvc; 00014 class IConversionSvc; 00037 class OfflineEventLoopMgr : public MinimalEventLoopMgr { 00038 public: 00040 friend class SvcFactory<OfflineEventLoopMgr>; 00041 00042 protected: 00044 IIncidentSvc* m_incidentSvc; 00046 IDataManagerSvc* m_evtDataMgrSvc; 00048 IDataProviderSvc* m_evtDataSvc; 00050 IEvtSelector* m_evtSelector; 00052 IEvtSelector::Context* m_evtContext; 00054 std::string m_evtsel; 00056 IDataManagerSvc* m_histoDataMgrSvc; 00058 IConversionSvc* m_histoPersSvc; 00060 std::string m_histPersName; 00062 IProperty* m_appMgrProperty; 00063 00064 protected: 00066 OfflineEventLoopMgr(const std::string& nam, ISvcLocator* svcLoc); 00068 virtual ~OfflineEventLoopMgr(); 00070 StatusCode getEventRoot(IOpaqueAddress*& refpAddr); 00071 00072 public: 00074 virtual StatusCode initialize(); 00076 virtual StatusCode reinitialize(); 00078 virtual StatusCode finalize(); 00080 virtual StatusCode nextEvent(int maxevt); 00082 virtual StatusCode executeEvent(void* par); 00084 virtual StatusCode executeRun(int maxevt); 00085 00086 private: 00087 double m_runNo; 00088 }; 00089 #endif // OFFLINE_EVENTLOOPMGR_H