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
17 #include "GaudiKernel/IAlgTask.h"
18 #include "GaudiKernel/IAlgorithm.h"
20 #include "GaudiKernel/SmartIF.h"
21 
22 #include <functional>
23 
33 class IOBoundAlgTask : public IAlgTask {
34 public:
36  std::function<StatusCode()> promote2ExecutedClosure )
37  : m_algorithm( algorithm )
38  , m_evtCtx( ctx )
39  , m_aess( aem )
41  , m_promote2ExecutedClosure( std::move( promote2ExecutedClosure ) ) {}
42 
43  StatusCode execute() override final;
44 
45 private:
51 };
52 
53 #endif
Wrapper around I/O-bound Gaudi-algorithms.
Small smart pointer class with automatic reference counting for IInterface.
Definition: IConverter.h:25
SmartIF< IAlgorithm > m_algorithm
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition: ISvcLocator.h:35
IOBoundAlgTask(IAlgorithm *algorithm, const EventContext &ctx, ISvcLocator *svcLocator, IAlgExecStateSvc *aem, std::function< StatusCode()> promote2ExecutedClosure)
StatusCode execute() override final
STL namespace.
This class represents an entry point to all the event specific data.
Definition: EventContext.h:34
General interface for a wrapper around Gaudi algorithm.
Definition: IAlgTask.h:25
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:61
const EventContext & m_evtCtx
SmartIF< ISvcLocator > m_serviceLocator
The IAlgorithm is the interface implemented by the Algorithm base class.
Definition: IAlgorithm.h:38
IAlgExecStateSvc * m_aess
std::function< StatusCode()> m_promote2ExecutedClosure