| The Gaudi Framework v27r1

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

MinimalEventLoopMgr.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_MINIMALEVENTLOOPMGR_H
2 #define GAUDIKERNEL_MINIMALEVENTLOOPMGR_H 1
3
4 // Framework include files
5 #include "GaudiKernel/Service.h"
6 #include "GaudiKernel/IAppMgrUI.h"
7 #include "GaudiKernel/IEventProcessor.h"
8 #include "GaudiKernel/IAlgorithm.h"
9 #include "GaudiKernel/IIncidentSvc.h"
10 #include "GaudiKernel/IIncidentListener.h"
11
12 // STL include files
13 #include <list>
14 #include <vector>
15
25 class GAUDI_API MinimalEventLoopMgr: public extends<Service,
26 IEventProcessor>
27 {
28 public:
29 typedef std::vector<SmartIF<IAlgorithm> > ListAlg;
30
31 protected:
32 // enums
33 enum State { OFFLINE, CONFIGURED, FINALIZED, INITIALIZED };
35 SmartIF<IAppMgrUI> m_appMgrUI;
37 SmartIF<IIncidentSvc> m_incidentSvc;
39 ListAlg m_topAlgList;
41 ListAlg m_outStreamList;
43 std::string m_outStreamType;
45 StringArrayProperty m_topAlgNames;
47 StringArrayProperty m_outStreamNames;
49 State m_state = OFFLINE;
51 bool m_scheduledStop = false;
53 SmartIF<IIncidentListener> m_abortEventListener;
56 bool m_abortEvent = false;
58 std::string m_abortEventSource;
59
60 public:
62 MinimalEventLoopMgr(const std::string& nam, ISvcLocator* svcLoc);
64 ~MinimalEventLoopMgr() override = default;
65
66 #if defined(GAUDI_V20_COMPAT) && !defined(G21_NO_DEPRECATED)
67 protected:
69 template<class T> T* releaseInterface(T* iface) {
70 if ( 0 != iface ) iface->release();
71 return 0;
72 }
73 public:
74 #endif
75
77 StatusCode initialize() override;
79 StatusCode start() override;
81 StatusCode stop() override;
83 StatusCode finalize() override;
85 StatusCode reinitialize() override;
87 StatusCode restart() override;
88
90 StatusCode nextEvent(int maxevt) override;
92 StatusCode executeEvent(void* par ) override;
94 StatusCode executeRun(int maxevt) override;
96 StatusCode stopRun() override;
97
99 void topAlgHandler( Property& p);
101 StatusCode decodeTopAlgs();
103 void outStreamHandler( Property& p);
105 StatusCode decodeOutStreams();
106
107 private:
109 MinimalEventLoopMgr(const MinimalEventLoopMgr&);
111 MinimalEventLoopMgr& operator= (const MinimalEventLoopMgr&);
112
113 };
114 #endif // GAUDIKERNEL_MINIMALEVENTLOOPMGR_H
Gaudi::StateMachine::INITIALIZED
Definition: StateMachine.h:15
SmartIF< IAppMgrUI >
AnalysisTest.initialize
def initialize()
Definition: AnalysisTest.py:12
ISvcLocator
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition: ISvcLocator.h:25
IEventProcessor.h
Gaudi::StateMachine::CONFIGURED
Definition: StateMachine.h:14
IAppMgrUI.h
IAlgorithm.h
MinimalEventLoopMgr::State
State
Definition: MinimalEventLoopMgr.h:33
std::string
STL class.
SimpleProperty< std::vector< std::string > >
Service.h
MinimalEventLoopMgr::ListAlg
std::vector< SmartIF< IAlgorithm > > ListAlg
Definition: MinimalEventLoopMgr.h:29
MinimalEventLoopMgr::m_abortEventSource
std::string m_abortEventSource
Source of the AbortEvent incident.
Definition: MinimalEventLoopMgr.h:58
compareOutputFiles.par
string par
Definition: compareOutputFiles.py:386
MinimalEventLoopMgr::m_abortEventListener
SmartIF< IIncidentListener > m_abortEventListener
Instance of the incident listener waiting for AbortEvent.
Definition: MinimalEventLoopMgr.h:53
IIncidentSvc.h
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
MinimalEventLoopMgr::m_incidentSvc
SmartIF< IIncidentSvc > m_incidentSvc
Reference to the incident service.
Definition: MinimalEventLoopMgr.h:37
Property
Property base class allowing Property* collections to be "homogeneous".
Definition: Property.h:38
std::vector
STL class.
MinimalEventLoopMgr::m_outStreamList
ListAlg m_outStreamList
List of output streams.
Definition: MinimalEventLoopMgr.h:41
extends
Base class used to extend a class implementing other interfaces.
Definition: extends.h:10
IIncidentListener.h
MinimalEventLoopMgr::m_outStreamType
std::string m_outStreamType
Out Stream type.
Definition: MinimalEventLoopMgr.h:43
MinimalEventLoopMgr
This is the default processing manager of the application manager.
Definition: MinimalEventLoopMgr.h:25
MinimalEventLoopMgr::m_topAlgNames
StringArrayProperty m_topAlgNames
List of top level algorithms names.
Definition: MinimalEventLoopMgr.h:45
executeRun
return ep &&ep executeRun(maxevt).isSuccess()
Gaudi::StateMachine::OFFLINE
Definition: StateMachine.h:13
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:107
MinimalEventLoopMgr::m_outStreamNames
StringArrayProperty m_outStreamNames
List of output stream names.
Definition: MinimalEventLoopMgr.h:47
MinimalEventLoopMgr::m_appMgrUI
SmartIF< IAppMgrUI > m_appMgrUI
Reference to the IAppMgrUI interface of the application manager.
Definition: MinimalEventLoopMgr.h:35
IOTest.start
tuple start
Definition: IOTest.py:88
MinimalEventLoopMgr::m_topAlgList
ListAlg m_topAlgList
List of top level algorithms.
Definition: MinimalEventLoopMgr.h:39