All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
IAlgorithm.h
Go to the documentation of this file.
1 // $Id: IAlgorithm.h,v 1.12 2008/10/17 13:06:04 marcocle Exp $
2 #ifndef GAUDIKERNEL_IALGORITHM_H
3 #define GAUDIKERNEL_IALGORITHM_H
4 
5 // Include files
8 #include <string>
9 
20 class GAUDI_API IAlgorithm : virtual public INamedInterface {
21 public:
24 
27  virtual const std::string& version() const = 0;
28 
32  virtual StatusCode execute() = 0;
33 
35  virtual bool isInitialized() const = 0;
37  virtual bool isFinalized() const = 0;
39  virtual bool isExecuted() const = 0;
40 
41  // --- Methods from IStateful ---
44  virtual StatusCode configure() = 0;
45 
48  virtual StatusCode initialize() = 0;
49 
52  virtual StatusCode start() = 0;
53 
56  virtual StatusCode stop() = 0;
57 
60  virtual StatusCode finalize() = 0;
61 
64  virtual StatusCode terminate() = 0;
65 
68  virtual StatusCode reinitialize() = 0;
69 
72  virtual StatusCode restart() = 0;
73 
76  virtual Gaudi::StateMachine::State FSMState() 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  virtual StatusCode sysExecute() = 0;
108 
112  virtual StatusCode sysStop() = 0;
113 
117  virtual StatusCode sysFinalize() = 0;
118 
124  virtual StatusCode sysBeginRun( ) = 0;
125 
131  virtual StatusCode sysEndRun( ) = 0;
132 
134  virtual void resetExecuted( ) = 0;
135 
138  virtual StatusCode beginRun() = 0;
141  virtual StatusCode endRun() = 0;
142 
143 
144  // ---- Function useful for dealing with sub-algorithms
146  virtual void setExecuted( bool state ) = 0;
147 
149  virtual bool isEnabled( ) const = 0;
150 
152  virtual bool filterPassed( ) const = 0;
153 
155  virtual void setFilterPassed( bool state ) = 0;
156 
157 };
158 
159 #endif // GAUDIKERNEL_IALGORITHM_H
DeclareInterfaceID(INamedInterface, 1, 0)
InterfaceID.
State
Allowed states for classes implementing the state machine (ApplicationMgr, Algorithm, Service, AlgTool).
Definition: StateMachine.h:12
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:30
The IAlgorithm is the interface implemented by the Algorithm base class.
Definition: IAlgorithm.h:20
IInterface compliant class extending IInterface with the name() method.
#define GAUDI_API
Definition: Kernel.h:108
tuple start
Definition: IOTest.py:88