Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/GaudiKernel/IService.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /***********************************************************************************\
0002 * (c) Copyright 1998-2024 CERN for the benefit of the LHCb and ATLAS collaborations *
0003 *                                                                                   *
0004 * This software is distributed under the terms of the Apache version 2 licence,     *
0005 * copied verbatim in the file "LICENSE".                                            *
0006 *                                                                                   *
0007 * In applying this licence, CERN does not waive the privileges and immunities       *
0008 * granted to it by virtue of its status as an Intergovernmental Organization        *
0009 * or submit itself to any jurisdiction.                                             *
0010 \***********************************************************************************/
0011 #ifndef GAUDIKERNEL_ISERVICE_H
0012 #define GAUDIKERNEL_ISERVICE_H
0013 
0014 // Include files
0015 #include <GaudiKernel/INamedInterface.h>
0016 #include <GaudiKernel/IStateful.h>
0017 #include <string>
0018 
0019 /** @class IService IService.h GaudiKernel/IService.h
0020 
0021     General service interface definition
0022 
0023     @author Pere Mato
0024 */
0025 class ISvcManager;
0026 class ServiceManager;
0027 
0028 class GAUDI_API IService : virtual public extend_interfaces<INamedInterface, IStateful> {
0029   friend class ServiceManager;
0030 
0031 public:
0032   /// InterfaceID
0033   DeclareInterfaceID( IService, 4, 0 );
0034 
0035   /// Initialize Service
0036   virtual StatusCode sysInitialize() = 0;
0037   /// Start Service
0038   virtual StatusCode sysStart() = 0;
0039   /// Stop Service
0040   virtual StatusCode sysStop() = 0;
0041   /// Finalize Service
0042   virtual StatusCode sysFinalize() = 0;
0043   /// Re-initialize the Service
0044   virtual StatusCode sysReinitialize() = 0;
0045   /// Re-start the Service
0046   virtual StatusCode sysRestart() = 0;
0047 
0048 protected:
0049   virtual void setServiceManager( ISvcManager* ) = 0;
0050 };
0051 
0052 #endif // GAUDIKERNEL_ISERVICE_H