HiveSlimEventLoopMgr.h
Go to the documentation of this file.
1 #ifndef GAUDIHIVE_HIVESLIMEVENTLOOPMGR_H
2 #define GAUDIHIVE_HIVESLIMEVENTLOOPMGR_H 1
3 
4 // Framework include files
12 
13 // Standard includes
14 #include <functional>
15 
16 // External Libraries
17 #include "tbb/concurrent_queue.h"
18 #include <boost/dynamic_bitset.hpp>
19 
20 // Forward declarations
21 class IIncidentSvc;
22 class IDataManagerSvc;
23 class IDataProviderSvc;
24 
25 class HiveSlimEventLoopMgr: public extends<Service,
26  IEventProcessor> {
27 
28 protected:
53  bool m_warnings;
57  StatusCode clearWBSlot(int evtSlot);
61  StatusCode createEventContext(EventContext*& eventContext, int createdEvents);
63  StatusCode drainScheduler(int& finishedEvents);
74 
77 
78  //if finite number of evts is processed use bitset
79  boost::dynamic_bitset<> * m_blackListBS;
80 
81 public:
83  HiveSlimEventLoopMgr(const std::string& nam, ISvcLocator* svcLoc);
85  virtual ~HiveSlimEventLoopMgr();
89  virtual StatusCode initialize();
91  virtual StatusCode reinitialize();
93  virtual StatusCode stop();
95  virtual StatusCode finalize();
97  virtual StatusCode nextEvent(int maxevt);
99  virtual StatusCode executeEvent(void* par);
101  virtual StatusCode executeRun(int maxevt);
103  virtual StatusCode stopRun();
104 };
105 #endif // GAUDIHIVE_HIVESLIMEVENTLOOPMGR_H
virtual StatusCode finalize()
implementation of IService::finalize
StatusCode clearWBSlot(int evtSlot)
Clear a slot in the WB.
SmartIF< IIncidentSvc > m_incidentSvc
Reference to the incident service.
SmartIF< IDataManagerSvc > m_evtDataMgrSvc
Reference to the Event Data Service's IDataManagerSvc interface.
virtual StatusCode executeEvent(void *par)
implementation of IEventProcessor::executeEvent(void* par)
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition: ISvcLocator.h:25
StatusCode declareEventRootAddress()
Declare the root address of the event.
virtual StatusCode stopRun()
implementation of IEventProcessor::stopRun()
SmartIF< IAppMgrUI > m_appMgrUI
Reference to the IAppMgrUI interface of the application manager.
HiveSlimEventLoopMgr(const std::string &nam, ISvcLocator *svcLoc)
Standard Constructor.
StatusCode drainScheduler(int &finishedEvents)
Drain the scheduler from all actions that may be queued.
SmartIF< IHiveWhiteBoard > m_whiteboard
Reference to the Whiteboard.
SmartIF< IScheduler > m_schedulerSvc
A shortcut for the scheduler.
bool m_scheduledStop
Scheduled stop of event processing.
Data provider interface definition.
This class represents an entry point to all the event specific data.
Definition: EventContext.h:25
std::string m_histPersName
Name of the Hist Pers type.
SmartIF< IProperty > m_appMgrProperty
Property interface of ApplicationMgr.
std::vector< unsigned int > m_eventNumberBlacklist
List of events to be skipped. The number is the number in the job.
STL class.
std::string m_evtsel
Event selector.
virtual StatusCode executeRun(int maxevt)
implementation of IEventProcessor::executeRun()
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
StatusCode createEventContext(EventContext *&eventContext, int createdEvents)
Create event context.
virtual ~HiveSlimEventLoopMgr()
Standard Destructor.
StatusCode getEventRoot(IOpaqueAddress *&refpAddr)
Create event address using event selector.
virtual StatusCode initialize()
implementation of IService::initialize
virtual StatusCode reinitialize()
implementation of IService::reinitialize
virtual StatusCode nextEvent(int maxevt)
implementation of IService::nextEvent
virtual StatusCode stop()
implementation of IService::stop
bool m_warnings
Flag to disable warning messages when using external input.
SmartIF< IConversionSvc > m_histoPersSvc
Reference to the Histogram Persistency Service.
Base class used to extend a class implementing other interfaces.
Definition: extends.h:10
SmartIF< IDataManagerSvc > m_histoDataMgrSvc
Reference to the Histogram Data Service.
SmartIF< IEvtSelector > m_evtSelector
Reference to the Event Selector.
SmartIF< IIncidentListener > m_abortEventListener
Instance of the incident listener waiting for AbortEvent.
std::string m_schedulerName
Name of the scheduler to be used.
Opaque address interface definition.
SmartIF< IAlgResourcePool > m_algResourcePool
Reference to the Algorithm resource pool.
bool m_endEventFired
Flag to avoid to fire the EnvEvent incident twice in a row (and also not before the first event) ...
The interface implemented by the IncidentSvc service.
Definition: IIncidentSvc.h:21
boost::dynamic_bitset * m_blackListBS
IEvtSelector::Context * m_evtContext
Event Iterator.