| The Gaudi Framework v32r1 (f65d50dc)

AlgoExecutionTask.h
Go to the documentation of this file.
1 #ifndef GAUDIHIVE_ALGOEXECUTIONTASK_H
2 #define GAUDIHIVE_ALGOEXECUTIONTASK_H
3
4 // Framework include files
5 #include "GaudiKernel/EventContext.h"
6 #include "GaudiKernel/IAlgExecStateSvc.h"
7 #include "GaudiKernel/IAlgorithm.h"
8 #include "GaudiKernel/ISvcLocator.h"
9 #include "GaudiKernel/SmartIF.h"
10
11 // External libs
12 #include "tbb/task.h"
13
14 class AlgoExecutionTask : public tbb::task {
15 public:
16 AlgoExecutionTask( IAlgorithm* algorithm, const EventContext& ctx, ISvcLocator* svcLocator, IAlgExecStateSvc* aem,
17 std::function<StatusCode()> promote2ExecutedClosure )
18 : m_algorithm( algorithm )
19 , m_evtCtx( ctx )
20 , m_aess( aem )
21 , m_serviceLocator( svcLocator )
22 , m_promote2ExecutedClosure( std::move( promote2ExecutedClosure ) ){};
23 tbb::task* execute() override;
24
25 private:
26 SmartIF<IAlgorithm> m_algorithm;
27 const EventContext& m_evtCtx;
28 IAlgExecStateSvc* m_aess;
29 SmartIF<ISvcLocator> m_serviceLocator;
30 std::function<StatusCode()> m_promote2ExecutedClosure;
31 };
32
33 #endif
SmartIF< IAlgorithm >
ISvcLocator
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition: ISvcLocator.h:25
IAlgExecStateSvc.h
AlgoExecutionTask::m_evtCtx
const EventContext & m_evtCtx
Definition: AlgoExecutionTask.h:27
std::function
AlgoExecutionTask::m_aess
IAlgExecStateSvc * m_aess
Definition: AlgoExecutionTask.h:28
IAlgorithm.h
AlgoExecutionTask
Definition: AlgoExecutionTask.h:14
AlgoExecutionTask::m_serviceLocator
SmartIF< ISvcLocator > m_serviceLocator
Definition: AlgoExecutionTask.h:29
EventContext.h
std
STL namespace.
AlgoExecutionTask::m_algorithm
SmartIF< IAlgorithm > m_algorithm
Definition: AlgoExecutionTask.h:26
EventContext
This class represents an entry point to all the event specific data.
Definition: EventContext.h:24
AlgoExecutionTask::execute
tbb::task * execute() override
Definition: AlgoExecutionTask.cpp:21
Gaudi::svcLocator
GAUDI_API ISvcLocator * svcLocator()
IAlgExecStateSvc
Abstract interface for a service that manages the Algorithm execution states.
Definition: IAlgExecStateSvc.h:70
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
SmartIF.h
IAlgorithm
The IAlgorithm is the interface implemented by the Algorithm base class.
Definition: IAlgorithm.h:28
AlgoExecutionTask::AlgoExecutionTask
AlgoExecutionTask(IAlgorithm *algorithm, const EventContext &ctx, ISvcLocator *svcLocator, IAlgExecStateSvc *aem, std::function< StatusCode()> promote2ExecutedClosure)
Definition: AlgoExecutionTask.h:16
AlgoExecutionTask::m_promote2ExecutedClosure
std::function< StatusCode()> m_promote2ExecutedClosure
Definition: AlgoExecutionTask.h:30
ISvcLocator.h