The Gaudi Framework  v33r1 (b1225454)
IService.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2019 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 #ifndef GAUDIKERNEL_ISERVICE_H
12 #define GAUDIKERNEL_ISERVICE_H
13 
14 // Include files
16 #include "GaudiKernel/IStateful.h"
17 #include <string>
18 
25 class ISvcManager;
26 class ServiceManager;
27 
28 class GAUDI_API IService : virtual public extend_interfaces<INamedInterface, IStateful> {
29  friend class ServiceManager;
30 
31 public:
34 
36  virtual StatusCode sysInitialize() = 0;
38  virtual StatusCode sysStart() = 0;
40  virtual StatusCode sysStop() = 0;
42  virtual StatusCode sysFinalize() = 0;
44  virtual StatusCode sysReinitialize() = 0;
46  virtual StatusCode sysRestart() = 0;
47 
48 protected:
49  virtual void setServiceManager( ISvcManager* ) = 0;
50 };
51 
52 #endif // GAUDIKERNEL_ISERVICE_H
The ServiceManager class is in charge of the creation of concrete instances of Services.
The ISvcManager is the interface implemented by the Service Factory in the Application Manager to sup...
Definition: ISvcManager.h:38
General service interface definition.
Definition: IService.h:28
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:61
Base class to be used to extend an interface.
#define DeclareInterfaceID(iface, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:23
#define GAUDI_API
Definition: Kernel.h:81