| The Gaudi Framework v32r1 (f65d50dc)

Public Member Functions | Protected Member Functions | Private Attributes | Friends | List of all members
ToolHandle< T > Class Template Reference

Handle to be used in lieu of naked pointers to tools. More...

`#include <GaudiKernel/ToolHandle.h>`

Inheritance diagram for ToolHandle< T >:
[legend]
Collaboration diagram for ToolHandle< T >:
[legend]

## Public Member Functions
| ToolHandle (const IInterface *parent=nullptr, bool createIf=true)
| Constructor for a tool with default tool type and name. More...
template<typename CT = T, typename NCT = std::remove_const_t<T>, typename = std::enable_if_t<std::is_const_v<CT> && !std::is_same_v<CT, NCT>>>
| ToolHandle (const ToolHandle< NCT > &other)
| Copy constructor from a non const T to const T tool handle. More...
| ToolHandle (const std::string &toolTypeAndName, const IInterface *parent=nullptr, bool createIf=true)
| Create a handle ('smart pointer') to a tool. More...
template<class OWNER , typename = std::enable_if_t<std::is_base_of_v<IProperty, OWNER>>>
| ToolHandle (OWNER *owner, std::string propName, std::string toolType, std::string doc="")
| Autodeclaring constructor with property propName, tool type/name and documentation. More...
StatusCode | initialize (const std::string &toolTypeAndName, const IInterface *parent=nullptr, bool createIf=true)
StatusCode | retrieve () const override
| Retrieve the AlgTool. More...
StatusCode | retrieve (DisableTool sd) override
StatusCode | retrieve (EnableTool sd) override
StatusCode | release () const
| Release the AlgTool. More...
StatusCode | retrieve (T *&algTool) const override
| Do the real retrieval of the AlgTool. More...
StatusCode | release (T *algTool) const override
| Do the real release of the AlgTool. More...
std::string | typeAndName () const override
std::add_const_t< T > * | get () const
T * | get ()
Public Member Functions inherited from BaseToolHandle
StatusCode | retrieve (IAlgTool *&tool) const
const IAlgTool * | get () const
IAlgTool * | get ()
bool | isEnabled () const
| Helper to check if the ToolHandle should be retrieved. More...
void | enable ()
void | disable ()
bool | setEnabled (const bool flag)
Public Member Functions inherited from ToolHandleInfo
virtual | ~ToolHandleInfo ()=default
bool | isPublic () const noexcept
bool | createIf () const noexcept
const IInterface * | parent () const noexcept
Public Member Functions inherited from GaudiHandle< T >
template<typename CT = T, typename NCT = std::remove_const_t<T>>
| GaudiHandle (const GaudiHandle< NCT > &other, std::enable_if_t< std::is_const_v< CT > &&!std::is_same_v< CT, NCT >> *=nullptr)
| Copy constructor needed for correct ref-counting. More...
| GaudiHandle (const GaudiHandle &other)
| Copy constructor needed for correct ref-counting. More...
template<typename CT = T, typename NCT = std::remove_const_t<T>>
std::enable_if_t< std::is_const_v< CT > &&!std::is_same_v< CT, NCT >, GaudiHandle & > | operator= (const GaudiHandle< NCT > &other)
| Assignment operator for correct ref-counting. More...
GaudiHandle & | operator= (const GaudiHandle &other)
| Assignment operator for correct ref-counting. More...
StatusCode | retrieve () const
| Retrieve the component. More...
StatusCode | release () const
| Release the component. More...
bool | isValid () const
| Check if the handle is valid (try to retrive the object is not done yet). More...
| operator bool () const
| For testing if handle has component. More...
T * | get ()
| Return the wrapped pointer, not calling retrieve() if null. More...
std::add_const_t< T > * | get () const
| Return the wrapped pointer, not calling retrieve() if null. More...
bool | isSet () const
| True if the wrapped pointer is not null. More...
T & | operator * ()
T * | operator-> ()
std::add_const_t< T > & | operator * () const
std::add_const_t< T > * | operator-> () const
std::string | getDefaultType ()
| Helper function to get default type string from the class type. More...
std::string | getDefaultName ()
Public Member Functions inherited from GaudiHandleBase
std::string | typeAndName () const
| The full type and name: "type/name". More...
std::string | type () const
| The concrete component class name: the part before the '/'. More...
std::string | name () const
| The instance name: the part after the '/'. More...
bool | empty () const
| Check if the handle has been set to empty string (i.e. More...
void | setTypeAndName (std::string myTypeAndName)
| The component "type/name" string. More...
void | setName (const std::string &myName)
| Set the instance name (part after the '/') without changing the class type. More...
std::string | pythonPropertyClassName () const override
| Name of the componentType with "Handle" appended. More...
std::string | messageName () const
| name used for printing messages More...
std::string | pythonRepr () const override
| Python representation of handle, i.e. More...
Public Member Functions inherited from GaudiHandleInfo
virtual | ~GaudiHandleInfo ()=default
| virtual destructor so that derived class destructor is called. More...
const std::string & | componentType () const
const std::string & | propertyName () const
| name as used in declareProperty(name,gaudiHandle) More...
void | setPropertyName (std::string propName)
| set name as used in declareProperty(name,gaudiHandle). More...
const std::string & | parentName () const
| The name of the parent. More...

## Protected Member Functions
const IAlgTool * | getAsIAlgTool () const override
IAlgTool * | getAsIAlgTool () override
StatusCode | i_retrieve (IAlgTool *&algTool) const override
Protected Member Functions inherited from BaseToolHandle
| BaseToolHandle (const IInterface *parent=nullptr, bool createIf=true)
Protected Member Functions inherited from ToolHandleInfo
| ToolHandleInfo (const IInterface *parent=nullptr, bool createIf=true)
Protected Member Functions inherited from GaudiHandle< T >
| GaudiHandle (std::string myTypeAndName, std::string myComponentType, std::string myParentName)
Protected Member Functions inherited from GaudiHandleBase
| GaudiHandleBase (std::string myTypeAndName, std::string myComponentType, std::string myParentName)
| Create a handle ('smart pointer') to a gaudi component. More...
Protected Member Functions inherited from GaudiHandleInfo
| GaudiHandleInfo (std::string myComponentType, std::string myParentName)
| Some basic information and helper functions shared between various handles/arrays. More...
void | setComponentType (const std::string &componentType)
| The component type. More...
void | setParentName (const std::string &parent)
| The name of the parent. More...

## Private Attributes
ServiceHandle< IToolSvc > | m_pToolSvc

## Friends
class | Gaudi::Algorithm
class | AlgTool
class | Service

## Additional Inherited Members
Public Types inherited from GaudiHandleBase
using | PropertyType = GaudiHandleProperty
Static Public Member Functions inherited from ToolHandleInfo
static std::string | toolComponentType (const IInterface *parent)
static std::string | toolParentName (const IInterface *parent)
Protected Attributes inherited from BaseToolHandle
bool | m_enabled = true
Protected Attributes inherited from ToolHandleInfo
const IInterface * | m_parent = nullptr
bool | m_createIf {true}

## Detailed Description

### template<class T>
class ToolHandle< T >

Handle to be used in lieu of naked pointers to tools.

This allows better control through the framework of tool loading and usage. @paramater T is the AlgTool interface class (or concrete class) of the tool to use, and must derive from IAlgTool.

Author
  Wim Lavrijsen WLavr.nosp@m.ijse.nosp@m.n@lbl.nosp@m..gov
  Marti.nosp@m.n.Wo.nosp@m.udstr.nosp@m.a@ce.nosp@m.rn.ch

Definition at line 125 of file ToolHandle.h.

## Constructor & Destructor Documentation

## ◆ ToolHandle() [1/4]

template<class T>

ToolHandle< T >::ToolHandle | ( | const IInterface * | parent = `nullptr`,
|  | bool | createIf = `true`
| ) |  |
| inline

Constructor for a tool with default tool type and name.

Can be called only if the type T is a concrete tool type (not an interface), and you want to use the default name.

Definition at line 135 of file ToolHandle.h.

136 : BaseToolHandle( parent, createIf )
137 , GaudiHandle<T>( "", toolComponentType( parent ), toolParentName( parent ) )
138 , m_pToolSvc( "ToolSvc", GaudiHandleBase::parentName() ) {}
ToolHandleInfo::createIf
bool createIf() const noexcept
Definition: ToolHandle.h:42
GaudiHandle
Handle to be used in lieu of naked pointers to gaudis.
Definition: GaudiHandle.h:163
ToolHandle::m_pToolSvc
ServiceHandle< IToolSvc > m_pToolSvc
Definition: ToolHandle.h:301
ToolHandleInfo::toolParentName
static std::string toolParentName(const IInterface *parent)
Definition: ToolHandle.h:52
BaseToolHandle::BaseToolHandle
BaseToolHandle(const IInterface *parent=nullptr, bool createIf=true)
Definition: ToolHandle.h:72
ToolHandleInfo::toolComponentType
static std::string toolComponentType(const IInterface *parent)
Definition: ToolHandle.h:50
GaudiHandleInfo::parentName
const std::string & parentName() const
The name of the parent.
Definition: GaudiHandle.h:53
ToolHandleInfo::parent
const IInterface * parent() const noexcept
Definition: ToolHandle.h:44

## ◆ ToolHandle() [2/4]

template<class T>
template<typename CT = T, typename NCT = std::remove_const_t<T>, typename = std::enable_if_t<std::is_const_v<CT> && !std::is_same_v<CT, NCT>>>

ToolHandle< T >::ToolHandle | ( | const ToolHandle< NCT > & | other | ) |
| inline

Copy constructor from a non const T to const T tool handle.

Definition at line 143 of file ToolHandle.h.

144 : BaseToolHandle( other.parent(), other.createIf() )
145 , GaudiHandle<CT>( other )
146 , m_pToolSvc( "ToolSvc", GaudiHandleBase::parentName() ) {}
ToolHandleInfo::createIf
bool createIf() const noexcept
Definition: ToolHandle.h:42
GaudiHandle
Handle to be used in lieu of naked pointers to gaudis.
Definition: GaudiHandle.h:163
ToolHandle::m_pToolSvc
ServiceHandle< IToolSvc > m_pToolSvc
Definition: ToolHandle.h:301
BaseToolHandle::BaseToolHandle
BaseToolHandle(const IInterface *parent=nullptr, bool createIf=true)
Definition: ToolHandle.h:72
GaudiHandleInfo::parentName
const std::string & parentName() const
The name of the parent.
Definition: GaudiHandle.h:53
ToolHandleInfo::parent
const IInterface * parent() const noexcept
Definition: ToolHandle.h:44

## ◆ ToolHandle() [3/4]

template<class T>

ToolHandle< T >::ToolHandle | ( | const std::string & | toolTypeAndName,
|  | const IInterface * | parent = `nullptr`,
|  | bool | createIf = `true`
| ) |  |
| inline

Create a handle ('smart pointer') to a tool.

The arguments are passed on to ToolSvc, and have the same meaning:

StatusCode ToolSvc::retrieveTool ( const std::string& type ,
T*& tool ,
const IInterface* parent = 0 ,
bool createIf = true )

Parameters

  owner | class owning the ToolHandle
  toolType | "MyToolType/MyToolName" "MyToolType" is short for "MyToolType/MyToolType" 'MyToolType' is the name of the class of the concrete tool 'MyToolName' is to distinguish several tool instances of the same class
  parent | the parent Algorithm,Tool or Service of which this tool is a member. If non-zero, the the tool is a private tool of the parent, otherwise it is a public (shared) tool.
  createIf | if true, create tool if not yet existing.

Definition at line 179 of file ToolHandle.h.

180 : BaseToolHandle( parent, createIf )
181 , GaudiHandle<T>( toolTypeAndName, toolComponentType( parent ), toolParentName( parent ) )
182 , m_pToolSvc( "ToolSvc", GaudiHandleBase::parentName() ) {
183 }
ToolHandleInfo::createIf
bool createIf() const noexcept
Definition: ToolHandle.h:42
GaudiHandle
Handle to be used in lieu of naked pointers to gaudis.
Definition: GaudiHandle.h:163
ToolHandle::m_pToolSvc
ServiceHandle< IToolSvc > m_pToolSvc
Definition: ToolHandle.h:301
ToolHandleInfo::toolParentName
static std::string toolParentName(const IInterface *parent)
Definition: ToolHandle.h:52
BaseToolHandle::BaseToolHandle
BaseToolHandle(const IInterface *parent=nullptr, bool createIf=true)
Definition: ToolHandle.h:72
ToolHandleInfo::toolComponentType
static std::string toolComponentType(const IInterface *parent)
Definition: ToolHandle.h:50
GaudiHandleInfo::parentName
const std::string & parentName() const
The name of the parent.
Definition: GaudiHandle.h:53
ToolHandleInfo::parent
const IInterface * parent() const noexcept
Definition: ToolHandle.h:44

## ◆ ToolHandle() [4/4]

template<class T>
template<class OWNER , typename = std::enable_if_t<std::is_base_of_v<IProperty, OWNER>>>

ToolHandle< T >::ToolHandle | ( | OWNER * | owner,
|  | std::string | propName,
|  | std::string | toolType,
|  | std::string | doc = `""`
| ) |  |
| inline

Autodeclaring constructor with property propName, tool type/name and documentation.

Note
  the use std::enable_if is required to avoid ambiguities

Definition at line 188 of file ToolHandle.h.

189 : ToolHandle( owner ) {
190 // convert name and type to a valid type/name string
191 // - if type does not contain '/' use type/type
192 // - otherwise type is already a type/name string
193 if ( !toolType.empty() and toolType.find( '/' ) == std::string::npos ) { toolType += '/' + toolType; }
194 owner->declareTool( *this, std::move( toolType ) ).ignore();
195 auto p = owner->OWNER::PropertyHolderImpl::declareProperty( std::move( propName ), *this, std::move( doc ) );
196 p->template setOwnerType<OWNER>();
197 }
ToolHandle::ToolHandle
ToolHandle(const IInterface *parent=nullptr, bool createIf=true)
Constructor for a tool with default tool type and name.
Definition: ToolHandle.h:135
std::string::empty
T empty(T... args)
std::move
T move(T... args)
std::string::find
T find(T... args)

## Member Function Documentation

## ◆ get() [1/2]

template<class T>

std::add_const_t<T>* ToolHandle< T >::get | ( |  | ) | const
| inline

Definition at line 262 of file ToolHandle.h.

262 { return GaudiHandle<T>::get(); }
GaudiHandle::get
T * get()
Return the wrapped pointer, not calling retrieve() if null.
Definition: GaudiHandle.h:248

## ◆ get() [2/2]

template<class T>

T* ToolHandle< T >::get | ( |  | ) |
| inline

Definition at line 264 of file ToolHandle.h.

264 { return GaudiHandle<T>::get(); }
GaudiHandle::get
T * get()
Return the wrapped pointer, not calling retrieve() if null.
Definition: GaudiHandle.h:248

## ◆ getAsIAlgTool() [1/2]

template<class T>

const IAlgTool* ToolHandle< T >::getAsIAlgTool | ( |  | ) | const
| inline override protected virtual

Implements BaseToolHandle.

Definition at line 282 of file ToolHandle.h.

282 {
283 // const cast to support T being const
284 return GaudiHandle<T>::get();
285 }
GaudiHandle::get
T * get()
Return the wrapped pointer, not calling retrieve() if null.
Definition: GaudiHandle.h:248

## ◆ getAsIAlgTool() [2/2]

template<class T>

IAlgTool* ToolHandle< T >::getAsIAlgTool | ( |  | ) |
| inline override protected virtual

Implements BaseToolHandle.

Definition at line 287 of file ToolHandle.h.

287 {
288 // const cast to support T being const
289 return ::details::nonConst( GaudiHandle<T>::get() );
290 }
GaudiHandle
Handle to be used in lieu of naked pointers to gaudis.
Definition: GaudiHandle.h:163
details::nonConst
std::remove_const_t< T > * nonConst(T *p)
Cast a pointer to a non const type.
Definition: GaudiHandle.h:20

## ◆ i_retrieve()

template<class T>

StatusCode ToolHandle< T >::i_retrieve | ( | IAlgTool *& | algTool | ) | const
| inline override protected virtual

Implements BaseToolHandle.

Definition at line 292 of file ToolHandle.h.

292 {
293 return m_pToolSvc->retrieve( typeAndName(), IAlgTool::interfaceID(), algTool, ToolHandleInfo::parent(),
294 ToolHandleInfo::createIf() );
295 }
ToolHandleInfo::createIf
bool createIf() const noexcept
Definition: ToolHandle.h:42
ToolHandle::typeAndName
std::string typeAndName() const override
Definition: ToolHandle.h:260
IToolSvc::retrieve
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.
ToolHandle::m_pToolSvc
ServiceHandle< IToolSvc > m_pToolSvc
Definition: ToolHandle.h:301
ToolHandleInfo::parent
const IInterface * parent() const noexcept
Definition: ToolHandle.h:44
IInterface::interfaceID
static const InterfaceID & interfaceID()
Return an instance of InterfaceID identifying the interface.
Definition: IInterface.h:253

## ◆ initialize()

template<class T>

StatusCode ToolHandle< T >::initialize | ( | const std::string & | toolTypeAndName,
|  | const IInterface * | parent = `nullptr`,
|  | bool | createIf = `true`
| ) |  |
| inline

Definition at line 200 of file ToolHandle.h.

201 {
202
203 GaudiHandleBase::setTypeAndName( toolTypeAndName );
204 GaudiHandleBase::setComponentType( toolComponentType( parent ) );
205 GaudiHandleBase::setParentName( toolParentName( parent ) );
206
207 m_parent = parent;
208 m_createIf = createIf;
209
210 return m_pToolSvc.initialize( "ToolSvc", GaudiHandleBase::parentName() );
211 }
ToolHandleInfo::createIf
bool createIf() const noexcept
Definition: ToolHandle.h:42
ToolHandle::m_pToolSvc
ServiceHandle< IToolSvc > m_pToolSvc
Definition: ToolHandle.h:301
GaudiHandleBase::setTypeAndName
void setTypeAndName(std::string myTypeAndName)
The component "type/name" string.
Definition: GaudiHandle.cpp:9
GaudiHandleInfo::setComponentType
void setComponentType(const std::string &componentType)
The component type.
Definition: GaudiHandle.h:68
ToolHandleInfo::toolParentName
static std::string toolParentName(const IInterface *parent)
Definition: ToolHandle.h:52
GaudiHandleInfo::setParentName
void setParentName(const std::string &parent)
The name of the parent.
Definition: GaudiHandle.h:71
ToolHandleInfo::toolComponentType
static std::string toolComponentType(const IInterface *parent)
Definition: ToolHandle.h:50
ServiceHandle::initialize
StatusCode initialize(const std::string &serviceName, const std::string &theParentName)
Definition: ServiceHandle.h:60
GaudiHandleInfo::parentName
const std::string & parentName() const
The name of the parent.
Definition: GaudiHandle.h:53
ToolHandleInfo::m_parent
const IInterface * m_parent
Definition: ToolHandle.h:58
ToolHandleInfo::m_createIf
bool m_createIf
Definition: ToolHandle.h:59
ToolHandleInfo::parent
const IInterface * parent() const noexcept
Definition: ToolHandle.h:44

## ◆ release() [1/2]

template<class T>

StatusCode ToolHandle< T >::release | ( |  | ) | const
| inline

Release the AlgTool.

Function must be repeated here to avoid hiding the function release( T*& )

Definition at line 239 of file ToolHandle.h.

239 { // not really const, because it updates m_pObject
240 return GaudiHandle<T>::release();
241 }
GaudiHandle::release
StatusCode release() const
Release the component.
Definition: GaudiHandle.h:224

## ◆ release() [2/2]

template<class T>

StatusCode ToolHandle< T >::release | ( | T * | algTool | ) | const
| inline override virtual

Do the real release of the AlgTool.

Reimplemented from GaudiHandle< T >.

Definition at line 258 of file ToolHandle.h.

258 { return m_pToolSvc->releaseTool( ::details::nonConst( algTool ) ); }
ToolHandle::m_pToolSvc
ServiceHandle< IToolSvc > m_pToolSvc
Definition: ToolHandle.h:301
details::nonConst
std::remove_const_t< T > * nonConst(T *p)
Cast a pointer to a non const type.
Definition: GaudiHandle.h:20
IToolSvc::releaseTool
virtual StatusCode releaseTool(IAlgTool *tool)=0
Release the tool.

## ◆ retrieve() [1/4]

template<class T>

StatusCode ToolHandle< T >::retrieve | ( |  | ) | const
| inline override virtual

Retrieve the AlgTool.

Release existing tool if needed. Function must be repeated here to avoid hiding the function retrieve( T*& )

Implements BaseToolHandle.

Definition at line 215 of file ToolHandle.h.

215 { // not really const, because it updates m_pObject
216 return GaudiHandle<T>::retrieve();
217 }
GaudiHandle::retrieve
StatusCode retrieve() const
Retrieve the component.
Definition: GaudiHandle.h:212

## ◆ retrieve() [2/4]

template<class T>

StatusCode ToolHandle< T >::retrieve | ( | DisableTool | sd | ) |
| inline override virtual

Implements BaseToolHandle.

Definition at line 219 of file ToolHandle.h.

219 {
220 if ( isEnabled() && sd == DisableTool{false} ) {
221 return GaudiHandle<T>::retrieve();
222 } else {
223 disable();
224 return StatusCode::SUCCESS;
225 }
226 }
BaseToolHandle::disable
void disable()
Definition: ToolHandle.h:98
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
GaudiHandle::retrieve
StatusCode retrieve() const
Retrieve the component.
Definition: GaudiHandle.h:212
BaseToolHandle::isEnabled
bool isEnabled() const
Helper to check if the ToolHandle should be retrieved.
Definition: ToolHandle.h:90
DisableTool
Gaudi::tagged_bool< class DisableTool_tag > DisableTool
Definition: ToolHandle.h:27

## ◆ retrieve() [3/4]

template<class T>

StatusCode ToolHandle< T >::retrieve | ( | EnableTool | sd | ) |
| inline override virtual

Implements BaseToolHandle.

Definition at line 228 of file ToolHandle.h.

228 {
229 if ( isEnabled() && sd == EnableTool{true} ) {
230 return GaudiHandle<T>::retrieve();
231 } else {
232 disable();
233 return StatusCode::SUCCESS;
234 }
235 }
BaseToolHandle::disable
void disable()
Definition: ToolHandle.h:98
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
GaudiHandle::retrieve
StatusCode retrieve() const
Retrieve the component.
Definition: GaudiHandle.h:212
BaseToolHandle::isEnabled
bool isEnabled() const
Helper to check if the ToolHandle should be retrieved.
Definition: ToolHandle.h:90
EnableTool
Gaudi::tagged_bool< class EnableTool_tag > EnableTool
Definition: ToolHandle.h:28

## ◆ retrieve() [4/4]

template<class T>

StatusCode ToolHandle< T >::retrieve | ( | T *& | algTool | ) | const
| inline override virtual

Do the real retrieval of the AlgTool.

Implements GaudiHandle< T >.

Definition at line 244 of file ToolHandle.h.

244 {
245 IAlgTool* iface = nullptr;
246 if ( i_retrieve( iface ).isFailure() ) { return StatusCode::FAILURE; }
247
248 algTool = dynamic_cast<T*>( iface );
249 if ( algTool == nullptr ) {
250 throw GaudiException( "unable to dcast AlgTool " + typeAndName() + " to interface " +
251 System::typeinfoName( typeid( T ) ),
252 typeAndName() + " retrieve", StatusCode::FAILURE );
253 }
254 return StatusCode::SUCCESS;
255 }
ToolHandle::typeAndName
std::string typeAndName() const override
Definition: ToolHandle.h:260
GaudiException
Define general base for Gaudi exception.
Definition: GaudiException.h:21
System::typeinfoName
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition: System.cpp:298
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
ToolHandle::i_retrieve
StatusCode i_retrieve(IAlgTool *&algTool) const override
Definition: ToolHandle.h:292
IAlgTool
The interface implemented by the AlgTool base class.
Definition: IAlgTool.h:23
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86

## ◆ typeAndName()

template<class T>

std::string ToolHandle< T >::typeAndName | ( |  | ) | const
| inline override virtual

Implements BaseToolHandle.

Definition at line 260 of file ToolHandle.h.

260 { return GaudiHandleBase::typeAndName(); }
GaudiHandleBase::typeAndName
std::string typeAndName() const
The full type and name: "type/name".
Definition: GaudiHandle.h:115

## Friends And Related Function Documentation

## ◆ AlgTool

template<class T>

friend class AlgTool
| friend

Definition at line 128 of file ToolHandle.h.

## ◆ Gaudi::Algorithm

template<class T>

friend class Gaudi::Algorithm
| friend

Definition at line 127 of file ToolHandle.h.

## ◆ Service

template<class T>

friend class Service
| friend

Definition at line 129 of file ToolHandle.h.

## Member Data Documentation

## ◆ m_pToolSvc

template<class T>

ServiceHandle<IToolSvc> ToolHandle< T >::m_pToolSvc
| mutable private

Definition at line 301 of file ToolHandle.h.

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

- GaudiKernel/GaudiKernel/ToolHandle.h