| The Gaudi Framework v30r0 (c919700c)

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

- File List
- File Members

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 {
16 public:
17 AlgoExecutionTask( IAlgorithm* algorithm, EventContext* ctx, ISvcLocator* svcLocator, IAlgExecStateSvc* aem,
18 std::function<StatusCode()> promote2ExecutedClosure )
19 : m_algorithm( algorithm )
20 , m_evtCtx( ctx )
21 , m_aess( aem )
22 , m_serviceLocator( svcLocator )
23 , m_promote2ExecutedClosure( std::move( promote2ExecutedClosure ) ){};
24 tbb::task* execute() override;
25
26 private:
27 SmartIF<IAlgorithm> m_algorithm;
28 EventContext* m_evtCtx;
29 IAlgExecStateSvc* m_aess;
30 SmartIF<ISvcLocator> m_serviceLocator;
31 std::function<StatusCode()> m_promote2ExecutedClosure;
32 };
33
34 #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
std::function
AlgoExecutionTask::m_aess
IAlgExecStateSvc * m_aess
Definition: AlgoExecutionTask.h:29
IAlgorithm.h
AlgoExecutionTask
Definition: AlgoExecutionTask.h:14
AlgoExecutionTask::m_serviceLocator
SmartIF< ISvcLocator > m_serviceLocator
Definition: AlgoExecutionTask.h:30
EventContext.h
std
STL namespace.
AlgoExecutionTask::m_algorithm
SmartIF< IAlgorithm > m_algorithm
Definition: AlgoExecutionTask.h:27
AlgoExecutionTask::AlgoExecutionTask
AlgoExecutionTask(IAlgorithm *algorithm, EventContext *ctx, ISvcLocator *svcLocator, IAlgExecStateSvc *aem, std::function< StatusCode()> promote2ExecutedClosure)
Definition: AlgoExecutionTask.h:17
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:14
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:26
SmartIF.h
IAlgorithm
The IAlgorithm is the interface implemented by the Algorithm base class.
Definition: IAlgorithm.h:28
AlgoExecutionTask::m_evtCtx
EventContext * m_evtCtx
Definition: AlgoExecutionTask.h:28
AlgoExecutionTask::m_promote2ExecutedClosure
std::function< StatusCode()> m_promote2ExecutedClosure
Definition: AlgoExecutionTask.h:31
ISvcLocator.h