1 #ifndef GAUDIHIVE_HIVEEVENTLOOPMGR_H
2 #define GAUDIHIVE_HIVEEVENTLOOPMGR_H 1
5 #include "GaudiKernel/IAlgResourcePool.h"
6 #include "GaudiKernel/IEvtSelector.h"
7 #include "GaudiKernel/IHiveWhiteBoard.h"
8 #include "GaudiKernel/MinimalEventLoopMgr.h"
14 #include <boost/dynamic_bitset.hpp>
17 #include "tbb/concurrent_vector.h"
18 #include "tbb/concurrent_queue.h"
29 class task_scheduler_init;
124 #endif // GAUDIHIVE_HIVEEVENTLOOPMGR_H
HiveEventLoopMgr(const std::string &nam, ISvcLocator *svcLoc)
Standard Constructor.
SmartIF< IHiveWhiteBoard > m_whiteboard
Reference to the Histogram Persistency Service.
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
void find_dependencies()
Get the input and output collections.
unsigned int m_numberOfAlgos
Total number of algos.
unsigned int m_max_parallel
Maximum number of parallel running algorithms.
void taskFinished(IAlgorithm *&algo)
Decrement the number of algos in flight and put algo back in manager - maybe private.
SmartIF< IAlgResourcePool > m_algResourcePool
Reference to the Algorithm resource pool.
bool m_CloneAlgorithms
Clone algorithms to run them simultaneously.
virtual StatusCode stop()
implementation of IService::stop
bool m_endEventFired
Flag to avoid to fire the EnvEvent incident twice in a row (and also not before the first event) ...
Data provider interface definition.
SmartIF< IDataManagerSvc > m_evtDataMgrSvc
Reference to the Event Data Service's IDataManagerSvc interface.
boost::dynamic_bitset state_type
SmartIF< IConversionSvc > m_histoPersSvc
Reference to the Histogram Persistency Service.
SmartIF< IDataManagerSvc > m_histoDataMgrSvc
Reference to the Histogram Data Service.
virtual StatusCode finalize()
implementation of IService::finalize
unsigned int m_evts_parallel
Number of events in parallel.
This class is used for returning status codes from appropriate routines.
SmartIF< IEvtSelector > m_evtSelector
Reference to the Event Selector.
virtual StatusCode nextEvent(int maxevt)
implementation of IService::nextEvent
std::string m_evtsel
Event selector.
std::vector< state_type > m_all_requirements
All requirements.
SmartIF< IProperty > m_appMgrProperty
Property interface of ApplicationMgr.
The IAlgorithm is the interface implemented by the Algorithm base class.
std::map< std::string, unsigned int > m_product_indices
Register of input products.
SmartIF< IDataProviderSvc > m_evtDataSvc
Reference to the Event Data Service's IDataProviderSvc interface.
boost::dynamic_bitset state_type
virtual ~HiveEventLoopMgr()
Standard Destructor.
StatusCode getEventRoot(IOpaqueAddress *&refpAddr)
Create event address using event selector.
unsigned int m_num_threads
Total numbers of threads.
std::vector< std::vector< std::string > > algosDependenciesCollection
Algorithms Inputs.
virtual StatusCode executeRun(int maxevt)
implementation of IEventProcessor::executeRun()
virtual StatusCode executeEvent(void *par)
implementation of IEventProcessor::executeEvent(void* par)
state_type m_termination_requirement
The termination requirement.
std::atomic_uint m_total_algos_in_flight
Total number of algos in flight across all events.
bool m_warnings
Flag to disable warning messages when using external input.
algosDependenciesCollection m_AlgosDependencies
std::string m_histPersName
Name of the Hist Pers type.
This is the default processing manager of the application manager.
IEvtSelector::Context * m_evtContext
Event Iterator.
virtual StatusCode reinitialize()
implementation of IService::reinitialize
tbb::task_scheduler_init * m_tbb_scheduler_init
Pointer to tbb task scheduler.
Opaque address interface definition.
virtual StatusCode initialize()
implementation of IService::initialize
The interface implemented by the IncidentSvc service.
bool m_DumpQueues
Dump the algorithm queues.