2 #ifndef GAUDIKERNEL_ISVCLOCATOR_H
3 #define GAUDIKERNEL_ISVCLOCATOR_H 1
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)
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.
SmartIF< T > service(const Gaudi::Utils::TypeNameString &typeName, const bool createIf=true)
Returns a smart pointer to the requested interface of a service.
StatusCode service(const std::string &type, const std::string &name, T *&svc, bool createIf=true)
Templated method to access a service by type and name.
TYPE * get() const
Get interface pointer.
Gaudi::InterfaceId< IInterface, 0, 0 > iid
Interface ID.
StatusCode service(const Gaudi::Utils::TypeNameString &name, T *&svc, bool createIf=true)
Templated method to access a service by name.
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...
virtual StatusCode getService(const Gaudi::Utils::TypeNameString &typeName, IService *&svc, const bool createIf=true)
Get a reference to the service given a service name.
bool isValid() const
Allow for check if smart pointer is valid.
virtual StatusCode getService(const Gaudi::Utils::TypeNameString &typeName, const InterfaceID &iid, IInterface *&pinterface)
Get a specific interface pointer given a service name and interface id.
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.