00001 // $Id: IStateful.h,v 1.1 2008/06/02 14:20:38 marcocle Exp $ 00002 #ifndef GAUDIKERNEL_ISTATEFUL_H 00003 #define GAUDIKERNEL_ISTATEFUL_H 00004 00005 // Include Files 00006 #include "GaudiKernel/IInterface.h" 00007 #include "GaudiKernel/StateMachine.h" 00008 #include <string> 00009 00010 static const InterfaceID IID_IStateful("IStateful", 1 , 0); 00011 00019 class IStateful : virtual public IInterface { 00020 public: 00021 00023 static const InterfaceID& interfaceID() { return IID_IStateful; } 00024 00025 virtual ~IStateful(){} //< Virtual destructor. 00026 00029 virtual StatusCode configure() = 0; 00030 00033 virtual StatusCode initialize() = 0; 00034 00037 virtual StatusCode start() = 0; 00038 00041 virtual StatusCode stop() = 0; 00042 00045 virtual StatusCode finalize() = 0; 00046 00049 virtual StatusCode terminate() = 0; 00050 00051 00054 virtual StatusCode reinitialize() = 0; 00055 00058 virtual StatusCode restart() = 0; 00059 00062 virtual Gaudi::StateMachine::State FSMState() const = 0; 00063 00067 virtual Gaudi::StateMachine::State targetFSMState() const = 0; 00068 00069 }; 00070 00071 #endif // GAUDIKERNEL_ISTATEFUL_H