All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
IToolSvc Class Referenceabstract

The interface implemented by the IToolSvc base class. More...

#include <GaudiKernel/IToolSvc.h>

Inheritance diagram for IToolSvc:
Collaboration diagram for IToolSvc:

Classes

class  Observer
 allow call-backs when a tool is a created or retrieved More...
 

Public Member Functions

 DeclareInterfaceID (IToolSvc, 2, 0)
 InterfaceID. More...
 
virtual StatusCode retrieve (const std::string &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. More...
 
virtual StatusCode retrieve (const std::string &type, const std::string &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. More...
 
virtual std::vector< std::string > getInstances (const std::string &toolType)=0
 Get all instance of tool by type. More...
 
virtual StatusCode releaseTool (IAlgTool *tool)=0
 Release the tool. More...
 
template<class T >
StatusCode retrieveTool (const std::string &type, T *&tool, const IInterface *parent=0, bool createIf=true)
 Retrieve specified tool sub-type with tool dependent part of the name automatically assigned. More...
 
template<class T >
StatusCode retrieveTool (const std::string &type, const std::string &name, T *&tool, const IInterface *parent=0, 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. More...
 
virtual void registerObserver (Observer *obs)=0
 
virtual void unRegisterObserver (Observer *obs)=0
 
- 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 ()
 Virtual destructor. More...
 

Additional Inherited Members

- Public Types inherited from IInterface
enum  Status { SUCCESS = 1, NO_INTERFACE, VERSMISMATCH, LAST_ERROR }
 Return status. More...
 
typedef Gaudi::InterfaceId
< IInterface, 0, 0 > 
iid
 Interface ID. More...
 
typedef mpl::set1< iidext_iids
 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 interface implemented by the IToolSvc base class.

Author
G.Corti

Definition at line 17 of file IToolSvc.h.

Member Function Documentation

IToolSvc::DeclareInterfaceID ( IToolSvc  ,
,
 
)
virtual std::vector<std::string> IToolSvc::getInstances ( const std::string &  toolType)
pure virtual

Get all instance of tool by type.

Parameters
toolTypetype of tool

Implemented in ToolSvc.

virtual void IToolSvc::registerObserver ( Observer obs)
pure virtual

Implemented in ToolSvc.

virtual StatusCode IToolSvc::releaseTool ( IAlgTool tool)
pure virtual

Release the tool.

Parameters
toolto be released

Implemented in ToolSvc.

virtual StatusCode IToolSvc::retrieve ( const std::string &  type,
const InterfaceID iid,
IAlgTool *&  tool,
const IInterface parent = 0,
bool  createIf = true 
)
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.

Parameters
typeAlgTool type name
iidthe unique interface identifier
toolreturned tool
parentconstant reference to the parent (def=none)
createIfcreation flag (def=create if not existing)

Implemented in ToolSvc.

virtual StatusCode IToolSvc::retrieve ( const std::string &  type,
const std::string &  name,
const InterfaceID iid,
IAlgTool *&  tool,
const IInterface parent = 0,
bool  createIf = true 
)
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.

Parameters
typeAlgTool type name
namename to be assigned to tool dependent part of the name
iidthe unique interface identifier
toolreturned tool
parentconstant reference to parent (def=none)
createIfcreation flag (def=create if not existing)

Implemented in ToolSvc.

template<class T >
StatusCode IToolSvc::retrieveTool ( const std::string &  type,
T *&  tool,
const IInterface parent = 0,
bool  createIf = true 
)
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.

IToolSvc* svc = ... ;
IMyTool* tool = 0 ;
StatusCode sc = svc->retrieveTool ( "MyToolType" , tool ) ;

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

IToolSvc* svc = ... ;
IAlgorithm* alg = ... ;
IMyTool* tool = 0 ;
StatusCode sc = svc->retrieveTool ( "MyToolType" , tool , alg ) ;

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.

IToolSvc* svc = ... ;
IMyTool* tool = 0 ;
StatusCode sc = svc->retrieveTool ( "MyToolType/MyToolName" , tool ) ;

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

IToolSvc* svc = ... ;
IAlgorithm* alg = ... ;
IMyTool* tool = 0 ;
StatusCode sc = svc ->
retrieveTool ( "MyToolType/MyToolName" , tool , alg ) ;

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.

Parameters
toolreturned tool
parentconstant reference to parent (def=none)
createIfcreation flag (def=create if not existing)

Definition at line 133 of file IToolSvc.h.

137  {
138  return retrieve( type,
139  T::interfaceID(),
140  (IAlgTool*&)tool,
141  parent,
142  createIf );
143  }
virtual StatusCode retrieve(const std::string &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.
string type
Definition: gaudirun.py:126
The interface implemented by the AlgTool base class.
Definition: IAlgTool.h:23
template<class T >
StatusCode IToolSvc::retrieveTool ( const std::string &  type,
const std::string &  name,
T *&  tool,
const IInterface parent = 0,
bool  createIf = true 
)
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.

IToolSvc* svc = ... ;
IMyTool* tool = 0 ;
StatusCode sc = svc->retrieveTool ( "MyToolType" ,
"MyToolName" , tool ) ;

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

IToolSvc* svc = ... ;
IAlgorithm* alg = ... ;
IMyTool* tool = 0 ;
StatusCode sc = svc->retrieveTool ( "MyToolType" ,
"MyToolName" , tool , alg ) ;

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

Parameters
typeAlgTool type name
namename to be assigned to tool dependent part of the name
toolreturned tool
parentconstant reference to parent (def=none)
createIfcreation flag (def=create if not existing)

Definition at line 189 of file IToolSvc.h.

194  {
195  return retrieve ( type,
196  name,
197  T::interfaceID(),
198  (IAlgTool*&)tool,
199  parent,
200  createIf );
201  }
virtual StatusCode retrieve(const std::string &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.
string type
Definition: gaudirun.py:126
The interface implemented by the AlgTool base class.
Definition: IAlgTool.h:23
virtual void IToolSvc::unRegisterObserver ( Observer obs)
pure virtual

Implemented in ToolSvc.


The documentation for this class was generated from the following file: