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"
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:
30 
31 protected:
32  // enums
33  enum State { OFFLINE, CONFIGURED, FINALIZED, INITIALIZED };
39  ListAlg m_topAlgList;
41  ListAlg m_outStreamList;
49  State m_state = OFFLINE;
51  bool m_scheduledStop = false;
56  bool m_abortEvent = false;
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:
111  MinimalEventLoopMgr& operator= (const MinimalEventLoopMgr&);
112 
113 };
114 #endif // GAUDIKERNEL_MINIMALEVENTLOOPMGR_H
def initialize()
Definition: AnalysisTest.py:12
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition: ISvcLocator.h:25
STL class.
std::vector< SmartIF< IAlgorithm > > ListAlg
std::string m_abortEventSource
Source of the AbortEvent incident.
SmartIF< IIncidentListener > m_abortEventListener
Instance of the incident listener waiting for AbortEvent.
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
SmartIF< IIncidentSvc > m_incidentSvc
Reference to the incident service.
Property base class allowing Property* collections to be "homogeneous".
Definition: Property.h:38
STL class.
ListAlg m_outStreamList
List of output streams.
Base class used to extend a class implementing other interfaces.
Definition: extends.h:10
std::string m_outStreamType
Out Stream type.
This is the default processing manager of the application manager.
StringArrayProperty m_topAlgNames
List of top level algorithms names.
return ep &&ep executeRun(maxevt).isSuccess()
#define GAUDI_API
Definition: Kernel.h:107
StringArrayProperty m_outStreamNames
List of output stream names.
SmartIF< IAppMgrUI > m_appMgrUI
Reference to the IAppMgrUI interface of the application manager.
tuple start
Definition: IOTest.py:88
ListAlg m_topAlgList
List of top level algorithms.