2 #ifndef GAUDIKERNEL_ISVCLOCATOR_H
3 #define GAUDIKERNEL_ISVCLOCATOR_H 1
6 #include "GaudiKernel/IInterface.h"
7 #include "GaudiKernel/ISvcManager.h"
8 #include "GaudiKernel/TypeNameString.h"
9 #include "GaudiKernel/SmartIF.h"
31 #if !defined(GAUDI_V22_API) || defined(G22_NEW_SVCLOCATOR)
37 IService*& svc,
const bool createIf =
true) {
74 virtual const std::list<IService*> &getServices()
const = 0;
77 virtual bool existsService(
const std::string& name)
const = 0;
79 #if !defined(GAUDI_V22_API) || defined(G22_NEW_SVCLOCATOR)
93 StatusCode service(
const std::string&
type,
const std::string& name,
94 T*& svc,
bool createIf =
true ) {
95 return service(type +
"/" + name, svc, createIf);
103 template <
typename T>
105 return SmartIF<T>(service(typeName, createIf));
111 #endif // GAUDI_ISVCLOCATOR_H
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
bool isSuccess() const
Test for a status code of SUCCESS.
TYPE * get() const
Get interface pointer.
Helper class to parse a string of format "type/name".
General service interface definition.
This class is used for returning status codes from appropriate routines.
Definition of the basic interface.
#define DeclareInterfaceID(name, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
bool isValid() const
Allow for check if smart pointer is valid.
virtual unsigned long addRef()=0
Increment the reference count of Interface instance.
std::string typeName(const std::type_info &typ)
IInterface *PyHelper() getService(IInterface *app, char *name)
virtual StatusCode queryInterface(const InterfaceID &ti, void **pp)=0
Set the void** to the pointer to the requested interface of the instance.