The Gaudi Framework  master (ff829712)
Loading...
Searching...
No Matches
ISvcLocator.h
Go to the documentation of this file.
1/***********************************************************************************\
2* (c) Copyright 1998-2025 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#pragma once
12
15#include <GaudiKernel/SmartIF.h>
17#include <list>
18#include <string>
19
20class IService;
21namespace Gaudi::Monitoring {
22 struct Hub;
23}
24namespace Gaudi {
25 namespace Interfaces {
26 struct IOptionsSvc;
27 }
28} // namespace Gaudi
29
30#define GAUDI_HAS_IOPTIONS_SVC
31
42class GAUDI_API ISvcLocator : virtual public IInterface {
43public:
46
48 virtual const std::list<IService*>& getServices() const = 0;
49
51 virtual bool existsService( std::string_view name ) const = 0;
52
54 virtual SmartIF<IService>& service( const Gaudi::Utils::TypeNameString& typeName, const bool createIf = true ) = 0;
55
57 template <typename T>
58 inline SmartIF<T> service( const Gaudi::Utils::TypeNameString& typeName, const bool createIf = true ) {
59 return SmartIF<T>{ service( typeName, createIf ) };
60 }
61
62 // try to access a different interface of the _current_ serviceLocator...
63 template <typename IFace>
65 return SmartIF<IFace>{ this };
66 }
67
70
71 Gaudi::Monitoring::Hub& monitoringHub();
72};
#define GAUDI_API
Definition Kernel.h:49
Helper class to parse a string of format "type/name".
Definition of the basic interface.
Definition IInterface.h:225
General service interface definition.
Definition IService.h:26
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition ISvcLocator.h:42
DeclareInterfaceID(ISvcLocator, 3, 0)
InterfaceID.
SmartIF< T > service(const Gaudi::Utils::TypeNameString &typeName, const bool createIf=true)
Returns a smart pointer to the requested interface of a service.
Definition ISvcLocator.h:58
virtual const std::list< IService * > & getServices() const =0
Return the list of Services.
virtual bool existsService(std::string_view name) const =0
Check the existence of a service given a service name.
virtual SmartIF< IService > & service(const Gaudi::Utils::TypeNameString &typeName, const bool createIf=true)=0
Returns a smart pointer to a service.
SmartIF< IFace > as()
Definition ISvcLocator.h:64
Small smart pointer class with automatic reference counting for IInterface.
Definition SmartIF.h:28
This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from p...
Definition __init__.py:1
Interface for a component that manages application configuration options.
Definition IOptionsSvc.h:46
Central entity in a Gaudi application that manages monitoring objects (i.e.