|
Gaudi Framework, version v22r0 |
| Home | Generated: 9 Feb 2011 |
00001 // $Header: /tmp/svngaudi/tmp.jEpFh25751/Gaudi/GaudiKernel/GaudiKernel/IService.h,v 1.8 2008/06/02 14:20:38 marcocle Exp $ 00002 #ifndef GAUDIKERNEL_ISERVICE_H 00003 #define GAUDIKERNEL_ISERVICE_H 00004 00005 // Include files 00006 #include "GaudiKernel/INamedInterface.h" 00007 #include "GaudiKernel/StateMachine.h" 00008 #include <string> 00009 00016 class ISvcManager; 00017 class ServiceManager; 00018 00019 class GAUDI_API IService: virtual public INamedInterface { 00020 friend class ServiceManager; 00021 public: 00023 DeclareInterfaceID(IService,3,0); 00024 00026 virtual StatusCode sysInitialize() = 0; 00028 virtual StatusCode sysStart() = 0; 00030 virtual StatusCode sysStop() = 0; 00032 virtual StatusCode sysFinalize() = 0; 00034 virtual StatusCode sysReinitialize() = 0; 00036 virtual StatusCode sysRestart() = 0; 00037 00038 // --- Methods from IStateful --- 00041 virtual StatusCode configure() = 0; 00042 00045 virtual StatusCode initialize() = 0; 00046 00049 virtual StatusCode start() = 0; 00050 00053 virtual StatusCode stop() = 0; 00054 00057 virtual StatusCode finalize() = 0; 00058 00061 virtual StatusCode terminate() = 0; 00062 00063 00066 virtual StatusCode reinitialize() = 0; 00067 00070 virtual StatusCode restart() = 0; 00071 00074 virtual Gaudi::StateMachine::State FSMState() const = 0; 00075 00079 virtual Gaudi::StateMachine::State targetFSMState() const = 0; 00080 00081 protected: 00082 virtual void setServiceManager(ISvcManager*) = 0; 00083 }; 00084 00085 #endif // GAUDIKERNEL_ISERVICE_H