Gaudi Framework, version v20r2

Generated: 18 Jul 2008

IToolSvc Class Reference

#include <GaudiKernel/IToolSvc.h>

Inheritance diagram for IToolSvc:

Inheritance graph
[legend]
Collaboration diagram for IToolSvc:

Collaboration graph
[legend]
List of all members.

Detailed Description

The interface implemented by the IToolSvc base class.

Author:
G.Corti

Definition at line 20 of file IToolSvc.h.

Public Member Functions

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.
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.
virtual std::vector< std::stringgetInstances (const std::string &toolType)=0
 Get all instance of tool by type.
virtual StatusCode releaseTool (IAlgTool *tool)=0
 Release the tool.
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.
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.
virtual void registerObserver (Observer *obs)=0
virtual void unRegisterObserver (Observer *obs)=0

Static Public Member Functions

static const InterfaceIDinterfaceID ()
 Retrieve interface ID.

Classes

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


Member Function Documentation

static const InterfaceID& IToolSvc::interfaceID (  )  [inline, static]

Retrieve interface ID.

Reimplemented from IInterface.

Definition at line 24 of file IToolSvc.h.

References IID_IToolSvc.

Referenced by HbookCnv::HFileCnv::initialize().

00024 { return IID_IToolSvc; }

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:
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)

Implemented in ToolSvc.

Referenced by VFSSvc::initialize(), retrieveTool(), and GaudiPython::Helper::tool().

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:
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)

Implemented in ToolSvc.

virtual std::vector<std::string> IToolSvc::getInstances ( const std::string toolType  )  [pure virtual]

Get all instance of tool by type.

Parameters:
toolType type of tool

Implemented in ToolSvc.

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

Release the tool.

Parameters:
tool to be released

Implemented in ToolSvc.

Referenced by VFSSvc::finalize(), PartitionSwitchAlg::finalize(), and PartitionSwitchAlg::initialize().

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:
tool returned tool
parent constant reference to parent (def=none)
createIf creation flag (def=create if not existing)

Definition at line 137 of file IToolSvc.h.

References retrieve().

Referenced by EventSelector::initialize(), PartitionSwitchAlg::initialize(), and TimingAuditor::initialize().

00141   {
00142     return retrieve( type, 
00143                      T::interfaceID(),
00144                      (IAlgTool*&)tool,
00145                      parent,
00146                      createIf );
00147   }

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:
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 193 of file IToolSvc.h.

References name, and retrieve().

00198   {
00199     return retrieve ( type, 
00200                       name,
00201                       T::interfaceID(),
00202                       (IAlgTool*&)tool,
00203                       parent,
00204                       createIf );
00205   }

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

Implemented in ToolSvc.

virtual void IToolSvc::unRegisterObserver ( Observer obs  )  [pure virtual]

Implemented in ToolSvc.


The documentation for this class was generated from the following file:
Generated at Fri Jul 18 12:08:30 2008 for Gaudi Framework, version v20r2 by Doxygen version 1.5.1 written by Dimitri van Heesch, © 1997-2004