ATLAS Offline Software
AthReentrantAlgorithm.h
Go to the documentation of this file.
1 
3 /*
4  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // AthReentrantAlgorithm.h
8 // Header file for class AthReentrantAlgorithm
9 // Author: Charles Leggett
11 #ifndef ATHENABASECOMPS_ATHREENTRANTALGORITHM_H
12 #define ATHENABASECOMPS_ATHREENTRANTALGORITHM_H 1
13 
14 
15 // STL includes
16 #include <string>
17 #include <type_traits>
18 
23 
24 
25 #include "Gaudi/Algorithm.h"
26 
27 
82  : public AthCommonDataStore<AthCommonMsg<Gaudi::Algorithm>>
83 {
85  // Public methods:
87  public:
88 
90  AthReentrantAlgorithm(const std::string& name, ISvcLocator* pSvcLocator);
91 
93  virtual ~AthReentrantAlgorithm() override;
94 
100  virtual StatusCode sysInitialize() override;
101 
102 
107  virtual bool isClonable() const override;
108 
109 
114  virtual unsigned int cardinality() const override;
115 
116 
124  virtual StatusCode sysExecute (const EventContext& ctx) override;
125 
126 
133  virtual const DataObjIDColl& extraOutputDeps() const override;
134 
135  virtual bool filterPassed(const EventContext& ctx) const {
136  return execState( ctx ).filterPassed();
137  }
138 
139  virtual void setFilterPassed( bool state, const EventContext& ctx ) const {
140  execState( ctx ).setFilterPassed( state );
141  }
142 
143 
144  private:
145 
147  AthReentrantAlgorithm(); //> not implemented
148  AthReentrantAlgorithm (const AthReentrantAlgorithm& ); //> not implemented
150 
153  DataObjIDColl m_extendedExtraObjects;
154 
155 };
156 
157 #endif //> !ATHENABASECOMPS_ATHREENTRANTALGORITHM_H
AthReentrantAlgorithm::isClonable
virtual bool isClonable() const override
Specify if the algorithm is clonable.
Definition: AthReentrantAlgorithm.cxx:44
AthCommonMsg.h
Templated class that provides backwards compatibility for legacy MsgService manipulation methods.
AthCheckMacros.h
AthMemMacros.h
AthReentrantAlgorithm::cardinality
virtual unsigned int cardinality() const override
Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentra...
Definition: AthReentrantAlgorithm.cxx:55
AthReentrantAlgorithm::filterPassed
virtual bool filterPassed(const EventContext &ctx) const
Definition: AthReentrantAlgorithm.h:135
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
AthReentrantAlgorithm::~AthReentrantAlgorithm
virtual ~AthReentrantAlgorithm() override
Destructor:
Definition: AthReentrantAlgorithm.cxx:37
AthReentrantAlgorithm::extraOutputDeps
virtual const DataObjIDColl & extraOutputDeps() const override
Return the list of extra output dependencies.
Definition: AthReentrantAlgorithm.cxx:79
AthReentrantAlgorithm::operator=
AthReentrantAlgorithm & operator=(const AthReentrantAlgorithm &)
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthReentrantAlgorithm::AthReentrantAlgorithm
AthReentrantAlgorithm()
Default constructor:
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthCommonDataStore.h
Templated class that provides access to Athena event stores and ability to set data dependencies via ...
AthReentrantAlgorithm::sysExecute
virtual StatusCode sysExecute(const EventContext &ctx) override
Execute an algorithm.
Definition: AthReentrantAlgorithm.cxx:67
AthReentrantAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Definition: AthReentrantAlgorithm.h:153
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
AthReentrantAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthReentrantAlgorithm.cxx:96
AthReentrantAlgorithm::AthReentrantAlgorithm
AthReentrantAlgorithm(const AthReentrantAlgorithm &)
AthReentrantAlgorithm::setFilterPassed
virtual void setFilterPassed(bool state, const EventContext &ctx) const
Definition: AthReentrantAlgorithm.h:139