|
Gaudi Framework, version v23r2 |
| Home | Generated: Thu Jun 28 2012 |
00001 // $Id: IAlgorithm.h,v 1.12 2008/10/17 13:06:04 marcocle Exp $ 00002 #ifndef GAUDIKERNEL_IALGORITHM_H 00003 #define GAUDIKERNEL_IALGORITHM_H 00004 00005 // Include files 00006 #include "GaudiKernel/INamedInterface.h" 00007 #include "GaudiKernel/StateMachine.h" 00008 #include <string> 00009 00020 class GAUDI_API IAlgorithm : virtual public INamedInterface { 00021 public: 00023 DeclareInterfaceID(IAlgorithm,4,0); 00024 00027 virtual const std::string& version() const = 0; 00028 00032 virtual StatusCode execute() = 0; 00033 00035 virtual bool isInitialized() const = 0; 00037 virtual bool isFinalized() const = 0; 00039 virtual bool isExecuted() const = 0; 00040 00041 // --- Methods from IStateful --- 00044 virtual StatusCode configure() = 0; 00045 00048 virtual StatusCode initialize() = 0; 00049 00052 virtual StatusCode start() = 0; 00053 00056 virtual StatusCode stop() = 0; 00057 00060 virtual StatusCode finalize() = 0; 00061 00064 virtual StatusCode terminate() = 0; 00065 00068 virtual StatusCode reinitialize() = 0; 00069 00072 virtual StatusCode restart() = 0; 00073 00076 virtual Gaudi::StateMachine::State FSMState() const = 0; 00077 00083 virtual StatusCode sysInitialize() = 0; 00084 00090 virtual StatusCode sysStart() = 0; 00091 00097 virtual StatusCode sysReinitialize() = 0; 00098 00104 virtual StatusCode sysRestart() = 0; 00105 00107 virtual StatusCode sysExecute() = 0; 00108 00112 virtual StatusCode sysStop() = 0; 00113 00117 virtual StatusCode sysFinalize() = 0; 00118 00124 virtual StatusCode sysBeginRun( ) = 0; 00125 00131 virtual StatusCode sysEndRun( ) = 0; 00132 00134 virtual void resetExecuted( ) = 0; 00135 00138 virtual StatusCode beginRun() = 0; 00141 virtual StatusCode endRun() = 0; 00142 00143 00144 // ---- Function useful for dealing with sub-algorithms 00146 virtual void setExecuted( bool state ) = 0; 00147 00149 virtual bool isEnabled( ) const = 0; 00150 00152 virtual bool filterPassed( ) const = 0; 00153 00155 virtual void setFilterPassed( bool state ) = 0; 00156 00157 }; 00158 00159 #endif // GAUDIKERNEL_IALGORITHM_H