| The Gaudi Framework v32r1 (f65d50dc)

IOBoundAlgTask.h
Go to the documentation of this file.
1 #ifndef GAUDIHIVE_IOBOUNDALGTASK_H
2 #define GAUDIHIVE_IOBOUNDALGTASK_H
3
4 // Framework include files
5 #include "GaudiKernel/EventContext.h"
6 #include "GaudiKernel/IAlgExecStateSvc.h"
7 #include "GaudiKernel/IAlgTask.h"
8 #include "GaudiKernel/IAlgorithm.h"
9 #include "GaudiKernel/ISvcLocator.h"
10 #include "GaudiKernel/SmartIF.h"
11
12 #include <functional>
13
23 class IOBoundAlgTask : public IAlgTask {
24 public:
25 IOBoundAlgTask( IAlgorithm* algorithm, const EventContext& ctx, ISvcLocator* svcLocator, IAlgExecStateSvc* aem,
26 std::function<StatusCode()> promote2ExecutedClosure )
27 : m_algorithm( algorithm )
28 , m_evtCtx( ctx )
29 , m_aess( aem )
30 , m_serviceLocator( svcLocator )
31 , m_promote2ExecutedClosure( std::move( promote2ExecutedClosure ) ) {}
32
33 StatusCode execute() override final;
34
35 private:
36 SmartIF<IAlgorithm> m_algorithm;
37 const EventContext& m_evtCtx;
38 IAlgExecStateSvc* m_aess;
39 SmartIF<ISvcLocator> m_serviceLocator;
40 std::function<StatusCode()> m_promote2ExecutedClosure;
41 };
42
43 #endif
IOBoundAlgTask
Wrapper around I/O-bound Gaudi-algorithms.
Definition: IOBoundAlgTask.h:23
SmartIF
Small smart pointer class with automatic reference counting for IInterface.
Definition: IConverter.h:15
IOBoundAlgTask::m_algorithm
SmartIF< IAlgorithm > m_algorithm
Definition: IOBoundAlgTask.h:36
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
IOBoundAlgTask::IOBoundAlgTask
IOBoundAlgTask(IAlgorithm *algorithm, const EventContext &ctx, ISvcLocator *svcLocator, IAlgExecStateSvc *aem, std::function< StatusCode()> promote2ExecutedClosure)
Definition: IOBoundAlgTask.h:25
IAlgorithm.h
IAlgTask.h
IOBoundAlgTask::execute
StatusCode execute() override final
Definition: IOBoundAlgTask.cpp:11
EventContext.h
std
STL namespace.
EventContext
This class represents an entry point to all the event specific data.
Definition: EventContext.h:24
IAlgTask
General interface for a wrapper around Gaudi algorithm.
Definition: IAlgTask.h:15
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
IOBoundAlgTask::m_evtCtx
const EventContext & m_evtCtx
Definition: IOBoundAlgTask.h:37
SmartIF.h
IOBoundAlgTask::m_serviceLocator
SmartIF< ISvcLocator > m_serviceLocator
Definition: IOBoundAlgTask.h:39
IAlgorithm
The IAlgorithm is the interface implemented by the Algorithm base class.
Definition: IAlgorithm.h:28
IOBoundAlgTask::m_aess
IAlgExecStateSvc * m_aess
Definition: IOBoundAlgTask.h:38
IOBoundAlgTask::m_promote2ExecutedClosure
std::function< StatusCode()> m_promote2ExecutedClosure
Definition: IOBoundAlgTask.h:40
ISvcLocator.h