| # Gaudi Framework, version v21r6 |

Home |  | Generated: 11 Nov 2009

# IService.h

Go to the documentation of this file.

    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