![]() |
The Gaudi Framework
master (ff829712)
|
The interface implemented by the IToolSvc base class. More...
#include <GaudiKernel/IToolSvc.h>
Classes | |
class | Observer |
allow call-backs when a tool is a created or retrieved More... | |
Public Types | |
typedef std::list< IAlgTool * > | ListTools |
![]() | |
enum class | Status : StatusCode::code_t { FAILURE = 0 , SUCCESS = 1 , NO_INTERFACE , VERSMISMATCH , LAST_ERROR } |
Return status. More... | |
using | iid = Gaudi::InterfaceId<IInterface, 0, 0> |
Interface ID. | |
using | ext_iids = Gaudi::interface_list<iid> |
Extra interfaces. | |
Public Member Functions | |
DeclareInterfaceID (IToolSvc, 2, 1) | |
InterfaceID. | |
virtual StatusCode | retrieve (std::string_view type, const InterfaceID &iid, IAlgTool *&tool, const IInterface *parent=0, bool createIf=true)=0 |
Retrieve tool with tool dependent part of the name automatically assigned. | |
virtual StatusCode | retrieve (std::string_view type, std::string_view name, const InterfaceID &iid, IAlgTool *&tool, const IInterface *parent=0, bool createIf=true)=0 |
Retrieve tool with tool dependent part of the name specified by the requester. | |
virtual std::vector< std::string > | getInstances (std::string_view toolType)=0 |
Get the names of all instances of tools of a given type. | |
virtual std::vector< std::string > | getInstances () const =0 |
Get the names all tool instances. | |
virtual std::vector< IAlgTool * > | getTools () const =0 |
Get pointers to all tool instances. | |
virtual StatusCode | releaseTool (IAlgTool *tool)=0 |
Release the tool. | |
template<class T> | |
StatusCode | retrieveTool (std::string_view type, T *&tool, const IInterface *parent=nullptr, bool createIf=true) |
Retrieve specified tool sub-type with tool dependent part of the name automatically assigned. | |
template<class T> | |
StatusCode | retrieveTool (std::string_view type, std::string_view name, T *&tool, const IInterface *parent=nullptr, bool createIf=true) |
Retrieve specified tool sub-type with tool dependent part of the name tool dependent part of the name specified by the requester. | |
virtual void | registerObserver (Observer *obs)=0 |
![]() | |
template<Gaudi::IsInterface TARGET> | |
TARGET * | cast () |
template<Gaudi::IsInterface TARGET> | |
TARGET const * | cast () const |
template<typename TARGET> requires ( !Gaudi::IsInterface<TARGET> ) | |
TARGET * | cast () |
template<typename TARGET> requires ( !Gaudi::IsInterface<TARGET> ) | |
TARGET const * | cast () const |
virtual std::vector< std::string > | getInterfaceNames () const =0 |
Returns a vector of strings containing the names of all the implemented interfaces. | |
virtual unsigned long | addRef () const =0 |
Increment the reference count of Interface instance. | |
virtual unsigned long | release () const =0 |
Release Interface instance. | |
virtual unsigned long | refCount () const =0 |
Current reference count. | |
virtual StatusCode | queryInterface (const InterfaceID &ti, void **pp)=0 |
Set the void** to the pointer to the requested interface of the instance. | |
virtual | ~IInterface ()=default |
Virtual destructor. | |
virtual void const * | i_cast (const InterfaceID &) const =0 |
void * | i_cast (const InterfaceID &iid) |
Additional Inherited Members | |
![]() | |
static const InterfaceID & | interfaceID () |
Return an instance of InterfaceID identifying the interface. | |
![]() | |
virtual unsigned long | decRef () const =0 |
Decrement reference count and return the new reference count. | |
The interface implemented by the IToolSvc base class.
Definition at line 28 of file IToolSvc.h.
typedef std::list<IAlgTool*> IToolSvc::ListTools |
Definition at line 34 of file IToolSvc.h.
IToolSvc::DeclareInterfaceID | ( | IToolSvc | , |
2 | , | ||
1 | ) |
|
pure virtual |
Get the names all tool instances.
|
pure virtual |
Get the names of all instances of tools of a given type.
toolType | type of tool |
|
pure virtual |
Get pointers to all tool instances.
|
pure virtual |
|
pure virtual |
Release the tool.
tool | to be released |
|
pure virtual |
Retrieve tool with tool dependent part of the name automatically assigned.
By default a tool will be created if it does not exist, unless otherwise specified. By default it will be a common tool unless a parent is specified. The parent of a common tool is automatically taken as the ToolSvc itself.
type | AlgTool type name |
iid | the unique interface identifier |
tool | returned tool |
parent | constant reference to the parent (def=none) |
createIf | creation flag (def=create if not existing) |
|
pure virtual |
Retrieve tool with tool dependent part of the name specified by the requester.
By default a tool will be created if it does not exist, unless otherwise specified. By default it will be a common tool unless a parent is specified. The parent of a common tool is automatically taken as the ToolSvc itself.
type | AlgTool type name |
name | name to be assigned to tool dependent part of the name |
iid | the unique interface identifier |
tool | returned tool |
parent | constant reference to parent (def=none) |
createIf | creation flag (def=create if not existing) |
|
inline |
Retrieve specified tool sub-type with tool dependent part of the name tool dependent part of the name specified by the requester.
Internally it uses the corresponding IToolSvc::retrieve and does the dynamic casting.
For this example public tool of type 'MyToolType'
will be retrieved from Tool Service (created on demand). The full name of the tool instance is set to be ToolSvc.MyToolName
For this example the private tool of type 'MyToolType'
will be retrieved from Tool Service (created on demand). The full name of the tool instance is set to be <AlgName>.MyToolName
, where <AlgName>
is a name of the algorithm.
If name
is empty (""
) it is assumed to be equal to the type
type | AlgTool type name |
name | name to be assigned to tool dependent part of the name |
tool | returned tool |
parent | constant reference to parent (def=none) |
createIf | creation flag (def=create if not existing) |
Definition at line 195 of file IToolSvc.h.
|
inline |
Retrieve specified tool sub-type with tool dependent part of the name automatically assigned.
Internally it uses the corresponding IToolSvc::retrieve and does the dynamic casting.
For this example public tool of type 'MyToolType'
will be retrieved from Tool Service (created on demand). The full name of the tool instance is set to be ToolSvc.MyToolType
For this example the private tool of type 'MyToolType'
will be retrieved from Tool Service (created on demand). The full name of the tool instance is set to be <AlgName>.MyToolType
, where <AlgName>
is a name of the algorithm.
For this example public tool of type 'MyToolType'
will be retrieved from Tool Service (created on demand). The full name of the tool instance is set to be ToolSvc.MyToolName
For this example the private tool of type 'MyToolType'
will be retrieved from Tool Service (created on demand). The full name of the tool instance is set to be <AlgName>.MyToolName
, where <AlgName>
is a name of the algorithm.
tool | returned tool |
parent | constant reference to parent (def=none) |
createIf | creation flag (def=create if not existing) |
Definition at line 147 of file IToolSvc.h.