|
Gaudi Framework, version v21r8 |
| Home | Generated: 17 Mar 2010 |
00001 // $Id: EventLoopMgr.h,v 1.9 2008/10/09 13:40:18 marcocle Exp $ 00002 #ifndef GAUDISVC_EVENTLOOPMGR_H 00003 #define GAUDISVC_EVENTLOOPMGR_H 1 00004 00005 // Framework include files 00006 #include "GaudiKernel/IEvtSelector.h" 00007 #include "GaudiKernel/MinimalEventLoopMgr.h" 00008 00009 // std includes 00010 #include <memory> 00011 00012 // Forward declarations 00013 class IIncidentSvc; 00014 class IDataManagerSvc; 00015 class IDataProviderSvc; 00016 class WatchdogThread; 00017 00040 class EventLoopMgr : public MinimalEventLoopMgr { 00041 public: 00042 00043 protected: 00045 SmartIF<IDataManagerSvc> m_evtDataMgrSvc; 00047 SmartIF<IDataProviderSvc> m_evtDataSvc; 00049 SmartIF<IEvtSelector> m_evtSelector; 00051 IEvtSelector::Context* m_evtContext; 00053 std::string m_evtsel; 00055 SmartIF<IDataManagerSvc> m_histoDataMgrSvc; 00057 SmartIF<IConversionSvc> m_histoPersSvc; 00059 std::string m_histPersName; 00061 IProperty* m_appMgrProperty; 00064 bool m_endEventFired; 00066 bool m_warnings; 00068 bool m_handleSIGINT; 00070 bool m_handleSIGXCPU; 00072 unsigned int m_eventTimeout; 00074 std::auto_ptr<WatchdogThread> m_watchdog; 00075 00076 public: 00078 EventLoopMgr(const std::string& nam, ISvcLocator* svcLoc); 00080 virtual ~EventLoopMgr(); 00082 StatusCode getEventRoot(IOpaqueAddress*& refpAddr); 00083 00085 virtual StatusCode initialize(); 00087 virtual StatusCode reinitialize(); 00089 virtual StatusCode stop(); 00091 virtual StatusCode finalize(); 00093 virtual StatusCode nextEvent(int maxevt); 00095 virtual StatusCode executeEvent(void* par); 00097 virtual StatusCode executeRun(int maxevt); 00098 }; 00099 #endif // GAUDISVC_EVENTLOOPMGR_H