Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  v31r0 (aeb156f0)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
IAlgContextSvc.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_IALGCONTEXTSVC_H
2 #define GAUDIKERNEL_IALGCONTEXTSVC_H
3 // ============================================================================
4 // Include files:
5 // ============================================================================
6 // STD & STL
7 // ============================================================================
8 #include <vector>
9 // ============================================================================
10 // GaudiKernel
11 // ============================================================================
13 #include "GaudiKernel/IAlgorithm.h"
14 #include "GaudiKernel/IInterface.h"
15 #include "GaudiKernel/SmartIF.h"
16 // ============================================================================
23 class GAUDI_API IAlgContextSvc : virtual public IInterface {
24 public:
29 
30 public:
32  virtual StatusCode setCurrentAlg( IAlgorithm* a, const EventContext& context ) = 0;
34  virtual StatusCode unSetCurrentAlg( IAlgorithm* a, const EventContext& context ) = 0;
36  virtual IAlgorithm* currentAlg() const = 0;
38  virtual const Algorithms& algorithms() const = 0;
39 };
40 // ============================================================================
41 namespace Gaudi {
42  namespace Utils {
74  class GAUDI_API AlgContext final {
75  public:
84  AlgContext( IAlgorithm* alg, IAlgContextSvc* svc, const EventContext& context );
85 
93  [[deprecated( "use the signature with explicit EventContext" )]] AlgContext( IAlgorithm* alg,
94  IAlgContextSvc* svc );
95 
101  ~AlgContext();
102 
103  private:
104  // copy constructor is disabled
105  AlgContext( const AlgContext& right ) = delete;
106  // assignement operator is disabled
107  AlgContext& operator=( const AlgContext& right ) = delete;
108 
109  private:
113  };
114  } // namespace Utils
115 } // end of namespace Gaudi
116 
117 #endif
Helper "sentry" class to automatize the safe register/unregister the algorithm&#39;s context.
struct deprecated("use MergingTransformer instead")]] ListTransformer
This class represents an entry point to all the event specific data.
Definition: EventContext.h:31
PropertyMgr & operator=(const PropertyMgr &)=delete
std::vector< IAlgorithm * > Algorithms
the actual type of algorithm&#39; stack
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
#define DeclareInterfaceID(iface, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:13
Definition of the basic interface.
Definition: IInterface.h:244
The IAlgorithm is the interface implemented by the Algorithm base class.
Definition: IAlgorithm.h:28
SmartIF< IAlgContextSvc > m_svc
An abstract interface for Algorithm Context Service.
const EventContext m_context
#define GAUDI_API
Definition: Kernel.h:71
Helper functions to set/get the application return code.
Definition: __init__.py:1
SmartIF< IAlgorithm > m_alg