| The Gaudi Framework v28r2p1 (f1a77ff4)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

IAlgorithm.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_IALGORITHM_H
2 #define GAUDIKERNEL_IALGORITHM_H
3
4 // Include files
5 #include "GaudiKernel/INamedInterface.h"
6 #include "GaudiKernel/IStateful.h"
7 #include <string>
8
9 class IAlgTool;
10 class AlgResourcePool;
11 class EventContext;
12
13 namespace Gaudi {
14 class StringKey;
15 }
16
27 class GAUDI_API IAlgorithm : virtual public extend_interfaces<INamedInterface,
28 IStateful> {
29 public:
30
31 friend AlgResourcePool;
32
34 DeclareInterfaceID(IAlgorithm,6,0);
35
38 virtual const std::string& version() const = 0;
39
42 virtual const std::string& type() const = 0;
43 virtual void setType(const std::string& ) = 0;
44
47 virtual const Gaudi::StringKey& nameKey() const = 0;
48
51 virtual unsigned int index() const = 0;
52
55 virtual bool isClonable() const = 0;
56
60 virtual unsigned int cardinality() const = 0;
61
64 virtual const std::vector<std::string>& neededResources() const = 0;
65
69 virtual StatusCode execute() = 0;
70
72 virtual bool isInitialized() const = 0;
74 virtual bool isFinalized() const = 0;
76 virtual bool isExecuted() const = 0;
77
83 virtual StatusCode sysInitialize() = 0;
84
90 virtual StatusCode sysStart() = 0;
91
97 virtual StatusCode sysReinitialize() = 0;
98
104 virtual StatusCode sysRestart() = 0;
105
107 #define GAUDI_SYSEXECUTE_WITHCONTEXT 1
108
110 virtual StatusCode sysExecute(const EventContext&) = 0;
111
115 virtual StatusCode sysStop() = 0;
116
120 virtual StatusCode sysFinalize() = 0;
121
127 virtual StatusCode sysBeginRun( ) = 0;
128
134 virtual StatusCode sysEndRun( ) = 0;
135
137 [[deprecated("resetExecuted should be triggered globally via the AlgExecStateSvc, not individually for each Algorithm")]]
138 virtual void resetExecuted( ) = 0;
139
142 virtual StatusCode beginRun() = 0;
145 virtual StatusCode endRun() = 0;
146
147
148 // ---- Function useful for dealing with sub-algorithms
150 virtual void setExecuted( bool state ) = 0;
151
153 virtual bool isEnabled( ) const = 0;
154
156 virtual bool filterPassed( ) const = 0;
157
159 virtual void setFilterPassed( bool state ) = 0;
160
162 virtual std::ostream& toControlFlowExpression(std::ostream& os) const = 0;
163
165 virtual const EventContext& getContext() const = 0;
166
168 virtual void setIndex(const unsigned int& idx) = 0;
169
170 };
171
172 #endif // GAUDIKERNEL_IALGORITHM_H
compareRootHistos.state
state
Definition: compareRootHistos.py:348
Gaudi::Functional::execute
StatusCode execute() override final
Gaudi::Functional::deprecated
struct deprecated("use MergingTransformer instead")]] ListTransformer
Definition: ListTransformer.h:9
DeclareInterfaceID
#define DeclareInterfaceID(iface, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:14
AlgResourcePool
The AlgResourcePool is a concrete implementation of the IAlgResourcePool interface.
Definition: AlgResourcePool.h:31
EventContext
This class represents an entry point to all the event specific data.
Definition: EventContext.h:25
Gaudi::StringKey
The helper class to represent the efficient "key" for access.
Definition: StringKey.h:35
std::string
STL class.
INamedInterface.h
IAlgorithm::AlgResourcePool
friend AlgResourcePool
Definition: IAlgorithm.h:31
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
extend_interfaces
Base class to be used to extend an interface.
Definition: extend_interfaces.h:11
gaudirun.type
type
Definition: gaudirun.py:125
IStateful.h
IAlgorithm
The IAlgorithm is the interface implemented by the Algorithm base class.
Definition: IAlgorithm.h:27
std::vector< std::string >
IAlgTool
The interface implemented by the AlgTool base class.
Definition: IAlgTool.h:23
AvalancheSchedulerSimpleTest.cardinality
int cardinality
Definition: AvalancheSchedulerSimpleTest.py:40
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:107
std::ostream
STL class.
Gaudi
Helper functions to set/get the application return code.
Definition: __init__.py:1