The Gaudi Framework
v33r1 (b1225454)
IOBoundAlgTask.h
Go to the documentation of this file.
1
/***********************************************************************************\
2
* (c) Copyright 1998-2019 CERN for the benefit of the LHCb and ATLAS collaborations *
3
* *
4
* This software is distributed under the terms of the Apache version 2 licence, *
5
* copied verbatim in the file "LICENSE". *
6
* *
7
* In applying this licence, CERN does not waive the privileges and immunities *
8
* granted to it by virtue of its status as an Intergovernmental Organization *
9
* or submit itself to any jurisdiction. *
10
\***********************************************************************************/
11
#ifndef GAUDIHIVE_IOBOUNDALGTASK_H
12
#define GAUDIHIVE_IOBOUNDALGTASK_H
13
14
// Framework include files
15
#include "
GaudiKernel/EventContext.h
"
16
#include "
GaudiKernel/IAlgExecStateSvc.h
"
17
#include "
GaudiKernel/IAlgTask.h
"
18
#include "
GaudiKernel/IAlgorithm.h
"
19
#include "
GaudiKernel/ISvcLocator.h
"
20
#include "
GaudiKernel/SmartIF.h
"
21
22
#include <functional>
23
33
class
IOBoundAlgTask
:
public
IAlgTask
{
34
public
:
35
IOBoundAlgTask
(
IAlgorithm
* algorithm,
const
EventContext
&
ctx
,
ISvcLocator
*
svcLocator
,
IAlgExecStateSvc
* aem,
36
std::function
<
StatusCode
()> promote2ExecutedClosure )
37
:
m_algorithm
( algorithm )
38
,
m_evtCtx
(
ctx
)
39
,
m_aess
( aem )
40
,
m_serviceLocator
(
svcLocator
)
41
,
m_promote2ExecutedClosure
(
std
::move( promote2ExecutedClosure ) ) {}
42
43
StatusCode
execute
() override final;
44
45
private:
46
SmartIF
<
IAlgorithm
>
m_algorithm
;
47
const
EventContext
&
m_evtCtx
;
48
IAlgExecStateSvc
*
m_aess
;
49
SmartIF
<
ISvcLocator
>
m_serviceLocator
;
50
std
::function<
StatusCode
()>
m_promote2ExecutedClosure
;
51
};
52
53
#endif
IOBoundAlgTask
Wrapper around I/O-bound Gaudi-algorithms.
Definition:
IOBoundAlgTask.h:33
SmartIF
Small smart pointer class with automatic reference counting for IInterface.
Definition:
IConverter.h:25
IOBoundAlgTask::m_algorithm
SmartIF< IAlgorithm > m_algorithm
Definition:
IOBoundAlgTask.h:46
ISvcLocator
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition:
ISvcLocator.h:35
IAlgExecStateSvc.h
std::function
IOBoundAlgTask::IOBoundAlgTask
IOBoundAlgTask(IAlgorithm *algorithm, const EventContext &ctx, ISvcLocator *svcLocator, IAlgExecStateSvc *aem, std::function< StatusCode()> promote2ExecutedClosure)
Definition:
IOBoundAlgTask.h:35
IAlgorithm.h
IAlgTask.h
IOBoundAlgTask::execute
StatusCode execute() override final
Definition:
IOBoundAlgTask.cpp:21
GaudiPython.Pythonizations.ctx
ctx
Definition:
Pythonizations.py:566
EventContext.h
std
STL namespace.
EventContext
This class represents an entry point to all the event specific data.
Definition:
EventContext.h:34
IAlgTask
General interface for a wrapper around Gaudi algorithm.
Definition:
IAlgTask.h:25
Gaudi::svcLocator
GAUDI_API ISvcLocator * svcLocator()
IAlgExecStateSvc
Abstract interface for a service that manages the Algorithm execution states.
Definition:
IAlgExecStateSvc.h:80
StatusCode
This class is used for returning status codes from appropriate routines.
Definition:
StatusCode.h:61
IOBoundAlgTask::m_evtCtx
const EventContext & m_evtCtx
Definition:
IOBoundAlgTask.h:47
SmartIF.h
IOBoundAlgTask::m_serviceLocator
SmartIF< ISvcLocator > m_serviceLocator
Definition:
IOBoundAlgTask.h:49
IAlgorithm
The IAlgorithm is the interface implemented by the Algorithm base class.
Definition:
IAlgorithm.h:38
IOBoundAlgTask::m_aess
IAlgExecStateSvc * m_aess
Definition:
IOBoundAlgTask.h:48
IOBoundAlgTask::m_promote2ExecutedClosure
std::function< StatusCode()> m_promote2ExecutedClosure
Definition:
IOBoundAlgTask.h:50
ISvcLocator.h
GaudiHive
src
IOBoundAlgTask.h
Generated on Mon Mar 23 2020 15:31:01 for The Gaudi Framework by
1.8.15