| # Gaudi Framework, version v20r3
Generated: 24 Nov 2008

# IService.h

Go to the documentation of this file.

    00001 // $Header: /local/reps/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
    00010 // Declaration of the interface ID.
    00011 static const InterfaceID IID_IService(2, 2, 1);
    00012
    00019 class ISvcManager;
    00020 class ServiceManager;
    00021
    00022 class IService : virtual public INamedInterface {
    00023   friend class ServiceManager;
    00024 public:
    00026   static const InterfaceID& interfaceID() { return IID_IService; }
    00027
    00029   virtual const InterfaceID&  type() const = 0;
    00031   virtual StatusCode sysInitialize() = 0;
    00033   virtual StatusCode sysStart() = 0;
    00035   virtual StatusCode sysStop() = 0;
    00037   virtual StatusCode sysFinalize() = 0;
    00039   virtual StatusCode sysReinitialize() = 0;
    00041   virtual StatusCode sysRestart() = 0;
    00042
    00043   // --- Methods from IStateful ---
    00046   virtual StatusCode configure() = 0;
    00047
    00050   virtual StatusCode initialize() = 0;
    00051
    00054   virtual StatusCode start() = 0;
    00055
    00058   virtual StatusCode stop() = 0;
    00059
    00062   virtual StatusCode finalize() = 0;
    00063
    00066   virtual StatusCode terminate() = 0;
    00067
    00068
    00071   virtual StatusCode reinitialize() = 0;
    00072
    00075   virtual StatusCode restart() = 0;
    00076
    00079   virtual Gaudi::StateMachine::State FSMState() const = 0;
    00080
    00084   virtual Gaudi::StateMachine::State targetFSMState() const = 0;
    00085
    00086 protected:
    00087   virtual void setServiceManager(ISvcManager*) = 0;
    00088 };
    00089
    00090 #endif  // GAUDIKERNEL_ISERVICE_H