IService.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_ISERVICE_H
2 #define GAUDIKERNEL_ISERVICE_H
3 
4 // Include files
5 #include "GaudiKernel/INamedInterface.h"
6 #include "GaudiKernel/IStateful.h"
7 #include <string>
8 
15 class ISvcManager;
16 class ServiceManager;
17 
18 class GAUDI_API IService: virtual public extend_interfaces2<INamedInterface,IStateful> {
19  friend class ServiceManager;
20 public:
23 
25  virtual StatusCode sysInitialize() = 0;
27  virtual StatusCode sysStart() = 0;
29  virtual StatusCode sysStop() = 0;
31  virtual StatusCode sysFinalize() = 0;
33  virtual StatusCode sysReinitialize() = 0;
35  virtual StatusCode sysRestart() = 0;
36 
38  virtual ~IService() = default;
39 
40 protected:
41  virtual void setServiceManager(ISvcManager*) = 0;
42 };
43 
44 #endif // GAUDIKERNEL_ISERVICE_H
The ServiceManager class is in charge of the creation of concrete instances of Services.
#define GAUDI_API
Definition: Kernel.h:107
The ISvcManager is the interface implemented by the Service Factory in the Application Manager to sup...
Definition: ISvcManager.h:28
#define DeclareInterfaceID(iface, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:14
General service interface definition.
Definition: IService.h:18
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
Base class to be used to extend an interface.