BOSS 7.0.2
BESIII Offline Software System
Loading...
Searching...
No Matches
InstallArea/include/OfflineEventLoopMgr/OfflineEventLoopMgr/OfflineEventLoopMgr.h
Go to the documentation of this file.
1// $Id: OfflineEventLoopMgr.h,v 1.6 2011/02/15 06:57:12 dengzy Exp $
2#ifndef OFFLINE_EVENTLOOPMGR_H
3#define OFFLINE_EVENTLOOPMGR_H
4
5// Framework include files
6#include "GaudiKernel/IEvtSelector.h"
7#include "GaudiKernel/MinimalEventLoopMgr.h"
8#include "GaudiKernel/SvcFactory.h"
9
10// Forward declarations
11class IIncidentSvc;
12class IDataManagerSvc;
13class IDataProviderSvc;
14class IConversionSvc;
15/** Class definition of OfflineEventLoopMgr.
16 This is the default processing manager of the application manager.
17 This object handles the minimal requirements needed by the
18 application manager. It also handles the default user
19 configuration setup for standard event processing.
20
21 <UL>
22 <LI> handling of the incidents when starting event processing
23 <LI> handling of the event loop
24 </UL>
25
26 <B>History:</B>
27 <PRE>
28 +---------+----------------------------------------------+---------+
29 | Date | Comment | Who |
30 +---------+----------------------------------------------+---------+
31 |13/12/00 | Initial version | M.Frank |
32 +---------+----------------------------------------------+---------+
33 </PRE>
34 @author Markus Frank
35 @version 1.0
36*/
37class OfflineEventLoopMgr : public MinimalEventLoopMgr {
38public:
39 /// Creator friend class
40 friend class SvcFactory<OfflineEventLoopMgr>;
41
42protected:
43 /// Reference to the indicent service
44 IIncidentSvc* m_incidentSvc;
45 /// Reference to the Event Data Service's IDataManagerSvc interface
46 IDataManagerSvc* m_evtDataMgrSvc;
47 /// Reference to the Event Data Service's IDataProviderSvc interface
48 IDataProviderSvc* m_evtDataSvc;
49 /// Reference to the Event Selector
50 IEvtSelector* m_evtSelector;
51 /// Event Iterator
52 IEvtSelector::Context* m_evtContext;
53 /// Event selector
54 std::string m_evtsel;
55 /// Reference to the Histogram Data Service
56 IDataManagerSvc* m_histoDataMgrSvc;
57 /// Reference to the Histogram Persistency Service
58 IConversionSvc* m_histoPersSvc;
59 /// Name of the Hist Pers type
60 std::string m_histPersName;
61 /// Property interface of ApplicationMgr
62 IProperty* m_appMgrProperty;
63
64protected:
65 /// Standard Constructor
66 OfflineEventLoopMgr(const std::string& nam, ISvcLocator* svcLoc);
67 /// Standard Destructor
69 /// Create event address using event selector
70 StatusCode getEventRoot(IOpaqueAddress*& refpAddr);
71
72public:
73 /// implementation of IService::initalize
74 virtual StatusCode initialize();
75 /// implementation of IService::reinitalize
76 virtual StatusCode reinitialize();
77 /// implementation of IService::finalize
78 virtual StatusCode finalize();
79 /// implementation of IService::nextEvent
80 virtual StatusCode nextEvent(int maxevt);
81 /// implementation of IEventProcessor::executeEvent(void* par)
82 virtual StatusCode executeEvent(void* par);
83 /// implementation of IEventProcessor::executeRun()
84 virtual StatusCode executeRun(int maxevt);
85
86 private:
87 double m_runNo;
88};
89#endif // OFFLINE_EVENTLOOPMGR_H
virtual StatusCode initialize()
implementation of IService::initalize
virtual StatusCode executeRun(int maxevt)
implementation of IEventProcessor::executeRun()
virtual ~OfflineEventLoopMgr()
Standard Destructor.
virtual StatusCode finalize()
implementation of IService::finalize
virtual StatusCode reinitialize()
implementation of IService::reinitalize
IDataManagerSvc * m_evtDataMgrSvc
Reference to the Event Data Service's IDataManagerSvc interface.
StatusCode getEventRoot(IOpaqueAddress *&refpAddr)
Create event address using event selector.
virtual StatusCode nextEvent(int maxevt)
implementation of IService::nextEvent
OfflineEventLoopMgr(const std::string &nam, ISvcLocator *svcLoc)
Standard Constructor.
IDataProviderSvc * m_evtDataSvc
Reference to the Event Data Service's IDataProviderSvc interface.
virtual StatusCode executeEvent(void *par)
implementation of IEventProcessor::executeEvent(void* par)