Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  master (42b00024)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
ISvcLocator Class Referenceabstract

#include <GaudiKernel/ISvcLocator.h>

Inheritance diagram for ISvcLocator:
Collaboration diagram for ISvcLocator:

Public Member Functions

 DeclareInterfaceID (ISvcLocator, 3, 0)
 InterfaceID. More...
 
virtual const std::list< IService * > & getServices () const =0
 Return the list of Services. More...
 
virtual bool existsService (std::string_view name) const =0
 Check the existence of a service given a service name. More...
 
virtual SmartIF< IService > & service (const Gaudi::Utils::TypeNameString &typeName, const bool createIf=true)=0
 Returns a smart pointer to a service. More...
 
template<typename T >
SmartIF< T > service (const Gaudi::Utils::TypeNameString &typeName, const bool createIf=true)
 Returns a smart pointer to the requested interface of a service. More...
 
template<typename IFace >
SmartIF< IFace > as ()
 
Gaudi::Interfaces::IOptionsSvcgetOptsSvc ()
 Direct access to Gaudi::Interfaces::IOptionsSvc implementation. More...
 
Gaudi::Monitoring::HubmonitoringHub ()
 
- Public Member Functions inherited from IInterface
virtual void * i_cast (const InterfaceID &) const =0
 main cast function More...
 
virtual std::vector< std::string > getInterfaceNames () const =0
 Returns a vector of strings containing the names of all the implemented interfaces. More...
 
virtual unsigned long addRef ()=0
 Increment the reference count of Interface instance. More...
 
virtual unsigned long release ()=0
 Release Interface instance. More...
 
virtual unsigned long refCount () const =0
 Current reference count. More...
 
virtual StatusCode queryInterface (const InterfaceID &ti, void **pp)=0
 Set the void** to the pointer to the requested interface of the instance. More...
 
virtual ~IInterface ()=default
 Virtual destructor. More...
 

Additional Inherited Members

- Public Types inherited from IInterface
enum  Status : StatusCode::code_t {
  Status::FAILURE = 0, Status::SUCCESS = 1, Status::NO_INTERFACE, Status::VERSMISMATCH,
  Status::LAST_ERROR
}
 Return status. More...
 
using iid = Gaudi::InterfaceId< IInterface, 0, 0 >
 Interface ID. More...
 
using ext_iids = Gaudi::interface_list< iid >
 Extra interfaces. More...
 
- Static Public Member Functions inherited from IInterface
static const InterfaceIDinterfaceID ()
 Return an instance of InterfaceID identifying the interface. More...
 

Detailed Description

The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to locate services in the framework. Clients use this interface to locate references to interfaces of services existing in the application. This operation needs to be done before the service can be used by the client. Typically "locating the services" is done at the initialization phase of the clients.

Author
Pere Mato

Definition at line 46 of file ISvcLocator.h.

Member Function Documentation

◆ as()

template<typename IFace >
SmartIF<IFace> ISvcLocator::as ( )
inline

Definition at line 68 of file ISvcLocator.h.

68  {
69  return SmartIF<IFace>{ this };
70  }

◆ DeclareInterfaceID()

ISvcLocator::DeclareInterfaceID ( ISvcLocator  ,
,
 
)

◆ existsService()

virtual bool ISvcLocator::existsService ( std::string_view  name) const
pure virtual

Check the existence of a service given a service name.

◆ getOptsSvc()

Gaudi::Interfaces::IOptionsSvc & ISvcLocator::getOptsSvc ( )

Direct access to Gaudi::Interfaces::IOptionsSvc implementation.

Definition at line 17 of file ISvcLocator.cpp.

17  {
18  using namespace Gaudi::Interfaces;
19  auto p = dynamic_cast<IOptionsSvc*>( service( "JobOptionsSvc" ).get() );
20  if ( !p ) throw std::runtime_error( "cannot dynamic_cast JobOptionsSvc to IOptionsSvc*" );
21  return *p;
22 }

◆ getServices()

virtual const std::list<IService*>& ISvcLocator::getServices ( ) const
pure virtual

Return the list of Services.

◆ monitoringHub()

Gaudi::Monitoring::Hub & ISvcLocator::monitoringHub ( )

Definition at line 24 of file ISvcLocator.cpp.

24 { return as<IAppMgrUI>()->monitoringHub(); }

◆ service() [1/2]

template<typename T >
SmartIF<T> ISvcLocator::service ( const Gaudi::Utils::TypeNameString typeName,
const bool  createIf = true 
)
inline

Returns a smart pointer to the requested interface of a service.

Definition at line 62 of file ISvcLocator.h.

62  {
63  return SmartIF<T>{ service( typeName, createIf ) };
64  }

◆ service() [2/2]

virtual SmartIF<IService>& ISvcLocator::service ( const Gaudi::Utils::TypeNameString typeName,
const bool  createIf = true 
)
pure virtual

Returns a smart pointer to a service.


The documentation for this class was generated from the following files:
Gaudi::Interfaces
Definition: IFileSvc.h:20
ISvcLocator::service
virtual SmartIF< IService > & service(const Gaudi::Utils::TypeNameString &typeName, const bool createIf=true)=0
Returns a smart pointer to a service.
SmartIF
Definition: IConverter.h:25
SmartIF::get
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:86
GaudiDict::typeName
std::string typeName(const std::type_info &typ)
Definition: Dictionary.cpp:31
Gaudi::Interfaces::IOptionsSvc
Interface for a component that manages application configuration options.
Definition: IOptionsSvc.h:46