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 
19 class GAUDI_API IAlgorithm : virtual public extend_interfaces2<INamedInterface, IStateful> {
20 public:
23 
26  virtual const std::string& version() const = 0;
27 
31  virtual StatusCode execute() = 0;
32 
34  virtual bool isInitialized() const = 0;
36  virtual bool isFinalized() const = 0;
38  virtual bool isExecuted() const = 0;
39 
45  virtual StatusCode sysInitialize() = 0;
46 
52  virtual StatusCode sysStart() = 0;
53 
59  virtual StatusCode sysReinitialize() = 0;
60 
66  virtual StatusCode sysRestart() = 0;
67 
69  virtual StatusCode sysExecute() = 0;
70 
74  virtual StatusCode sysStop() = 0;
75 
79  virtual StatusCode sysFinalize() = 0;
80 
86  virtual StatusCode sysBeginRun( ) = 0;
87 
93  virtual StatusCode sysEndRun( ) = 0;
94 
96  virtual void resetExecuted( ) = 0;
97 
100  virtual StatusCode beginRun() = 0;
103  virtual StatusCode endRun() = 0;
104 
105 
106  // ---- Function useful for dealing with sub-algorithms
108  virtual void setExecuted( bool state ) = 0;
109 
111  virtual bool isEnabled( ) const = 0;
112 
114  virtual bool filterPassed( ) const = 0;
115 
117  virtual void setFilterPassed( bool state ) = 0;
118 
119 };
120 
121 #endif // GAUDIKERNEL_IALGORITHM_H
#define GAUDI_API
Definition: Kernel.h:107
#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
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
Base class to be used to extend an interface.
The IAlgorithm is the interface implemented by the Algorithm base class.
Definition: IAlgorithm.h:19