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/IAlgTask.h"
7 #include "GaudiKernel/SmartIF.h"
11 
12 #include "ForwardSchedulerSvc.h"
13 
23 class IOBoundAlgTask : public IAlgTask {
24 public:
26  unsigned int algoIndex,
27  EventContext* ctx,
29  ForwardSchedulerSvc* schedSvc,
30  IAlgExecStateSvc* aem):
31  m_algorithm(algorithm),
32  m_evtCtx(ctx),
33  m_algoIndex(algoIndex),
34  m_schedSvc(schedSvc),
35  m_aess(aem),
36  m_serviceLocator(svcLocator) {}
37 
38  ~IOBoundAlgTask() override {}
39 
40  virtual StatusCode execute() override;
41 
42 private:
45  const unsigned int m_algoIndex;
46  // For the callbacks on task finishing
47  SmartIF<ForwardSchedulerSvc> m_schedSvc; // TODO consider using it through its interface (IScheduler?)
50 };
51 
52 #endif
Wrapper around I/O-bound Gaudi-algorithms.
~IOBoundAlgTask() override
SmartIF< IAlgorithm > m_algorithm
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition: ISvcLocator.h:25
EventContext * m_evtCtx
The SchedulerSvc implements the IScheduler interface.
SmartIF< ForwardSchedulerSvc > m_schedSvc
This class represents an entry point to all the event specific data.
Definition: EventContext.h:25
virtual StatusCode execute() override
General interface for a wrapper around Gaudi algorithm.
Definition: IAlgTask.h:15
GAUDI_API ISvcLocator * svcLocator()
Abstract interface for a service that manages the Algorithm execution states.
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
SmartIF< ISvcLocator > m_serviceLocator
The IAlgorithm is the interface implemented by the Algorithm base class.
Definition: IAlgorithm.h:27
const unsigned int m_algoIndex
IAlgExecStateSvc * m_aess
IOBoundAlgTask(IAlgorithm *algorithm, unsigned int algoIndex, EventContext *ctx, ISvcLocator *svcLocator, ForwardSchedulerSvc *schedSvc, IAlgExecStateSvc *aem)