Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  master (e199b415)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
BaseToolHandle Class Referenceabstract

#include <GaudiKernel/ToolHandle.h>

Inheritance diagram for BaseToolHandle:
Collaboration diagram for BaseToolHandle:

Public Member Functions

StatusCode retrieve (IAlgTool *&tool) const
 
virtual StatusCode retrieve () const =0
 
virtual StatusCode retrieve (DisableTool sd)=0
 
virtual StatusCode retrieve (EnableTool sd)=0
 
const IAlgToolget () const
 
IAlgToolget ()
 
virtual std::string typeAndName () const =0
 
bool isEnabled () const
 Helper to check if the ToolHandle should be retrieved. More...
 
void enable ()
 
void disable ()
 
bool setEnabled (bool flag)
 
- Public Member Functions inherited from ToolHandleInfo
virtual ~ToolHandleInfo ()=default
 
bool isPublic () const noexcept
 
bool createIf () const noexcept
 
const IInterfaceparent () const noexcept
 

Protected Member Functions

 BaseToolHandle (const IInterface *parent=nullptr, bool createIf=true)
 
virtual StatusCode i_retrieve (IAlgTool *&) const =0
 
virtual const IAlgToolgetAsIAlgTool () const =0
 
virtual IAlgToolgetAsIAlgTool ()=0
 
- Protected Member Functions inherited from ToolHandleInfo
 ToolHandleInfo (const IInterface *parent=nullptr, bool createIf=true)
 

Protected Attributes

bool m_enabled = true
 
- Protected Attributes inherited from ToolHandleInfo
const IInterfacem_parent = nullptr
 
bool m_createIf { true }
 

Additional Inherited Members

- Static Public Member Functions inherited from ToolHandleInfo
static std::string toolComponentType (const IInterface *parent)
 
static std::string toolParentName (const IInterface *parent)
 

Detailed Description

Non-templated base class for actual ToolHandle<T>. Defines the interface for the management of ToolHandles in the Algorithms and Tools

Author
Daniel Funke danie.nosp@m.l.fu.nosp@m.nke@c.nosp@m.ern..nosp@m.ch

Definition at line 84 of file ToolHandle.h.

Constructor & Destructor Documentation

◆ BaseToolHandle()

BaseToolHandle::BaseToolHandle ( const IInterface parent = nullptr,
bool  createIf = true 
)
inlineprotected

Definition at line 87 of file ToolHandle.h.

Member Function Documentation

◆ disable()

void BaseToolHandle::disable ( )
inline

Definition at line 113 of file ToolHandle.h.

113 { m_enabled = false; }

◆ enable()

void BaseToolHandle::enable ( )
inline

Definition at line 111 of file ToolHandle.h.

111 { m_enabled = true; }

◆ get() [1/2]

IAlgTool* BaseToolHandle::get ( )
inline

Definition at line 100 of file ToolHandle.h.

100 { return getAsIAlgTool(); }

◆ get() [2/2]

const IAlgTool* BaseToolHandle::get ( ) const
inline

Definition at line 98 of file ToolHandle.h.

98 { return getAsIAlgTool(); }

◆ getAsIAlgTool() [1/2]

virtual const IAlgTool* BaseToolHandle::getAsIAlgTool ( ) const
protectedpure virtual

Implemented in ToolHandle< T >.

◆ getAsIAlgTool() [2/2]

◆ i_retrieve()

◆ isEnabled()

bool BaseToolHandle::isEnabled ( ) const
inline

Helper to check if the ToolHandle should be retrieved.

Definition at line 105 of file ToolHandle.h.

105  {
106  // the handle is considered enabled if the type/name is valid and the
107  // enabled flag was set to true, or it was already retrieved
108  return ( m_enabled && !typeAndName().empty() ) || get();
109  }

◆ retrieve() [1/4]

virtual StatusCode BaseToolHandle::retrieve ( ) const
pure virtual

◆ retrieve() [2/4]

◆ retrieve() [3/4]

◆ retrieve() [4/4]

StatusCode BaseToolHandle::retrieve ( IAlgTool *&  tool) const
inline

Definition at line 92 of file ToolHandle.h.

92 { return i_retrieve( tool ); }

◆ setEnabled()

bool BaseToolHandle::setEnabled ( bool  flag)
inline

Definition at line 115 of file ToolHandle.h.

115 { return std::exchange( m_enabled, flag ); }

◆ typeAndName()

virtual std::string BaseToolHandle::typeAndName ( ) const
pure virtual

Implemented in ToolHandle< T >.

Member Data Documentation

◆ m_enabled

bool BaseToolHandle::m_enabled = true
protected

Definition at line 122 of file ToolHandle.h.


The documentation for this class was generated from the following file:
BaseToolHandle::typeAndName
virtual std::string typeAndName() const =0
BaseToolHandle::i_retrieve
virtual StatusCode i_retrieve(IAlgTool *&) const =0
bug_34121.tool
tool
Definition: bug_34121.py:18
BaseToolHandle::get
const IAlgTool * get() const
Definition: ToolHandle.h:98
ToolHandleInfo::ToolHandleInfo
ToolHandleInfo(const IInterface *parent=nullptr, bool createIf=true)
Definition: ToolHandle.h:49
BaseToolHandle::m_enabled
bool m_enabled
Definition: ToolHandle.h:122
BaseToolHandle::getAsIAlgTool
virtual const IAlgTool * getAsIAlgTool() const =0
ToolHandleInfo::parent
const IInterface * parent() const noexcept
Definition: ToolHandle.h:59
ToolHandleInfo::createIf
bool createIf() const noexcept
Definition: ToolHandle.h:57