The Gaudi Framework
v30r3 (a5ef0a68)
|
Handle to be used in lieu of naked pointers to tools. More...
#include <GaudiKernel/ToolHandle.h>
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 = typename std::remove_const<T>::type> | |
ToolHandle (const ToolHandle< NCT > &other, typename std::enable_if< std::is_const< CT >::value &&!std::is_same< CT, NCT >::value >::type *=nullptr) | |
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<IProperty, OWNER>::value>> | |
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 >::type * | 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 = typename std::remove_const<T>::type> | |
GaudiHandle (const GaudiHandle< NCT > &other, typename std::enable_if< std::is_const< CT >::value &&!std::is_same< CT, NCT >::value >::type *=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 = typename std::remove_const<T>::type> | |
std::enable_if< std::is_const< CT >::value &&!std::is_same< CT, NCT >::value, GaudiHandle & >::type | 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 >::type * | 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 >::type & | operator* () const |
std::add_const< T >::type * | 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 | 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} |
Handle to be used in lieu of naked pointers to tools.
This allows better control through the framework of tool loading and usage. T is the AlgTool interface class (or concrete class) of the tool to use, and must derive from IAlgTool.
Definition at line 130 of file ToolHandle.h.
|
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 141 of file ToolHandle.h.
|
inline |
Copy constructor from a non const T to const T tool handle.
Definition at line 150 of file ToolHandle.h.
|
inline |
Create a handle ('smart pointer') to a tool.
The arguments are passed on to ToolSvc, and have the same meaning:
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 189 of file ToolHandle.h.
|
inline |
Autodeclaring constructor with property propName, tool type/name and documentation.
Definition at line 199 of file ToolHandle.h.
|
inline |
Definition at line 283 of file ToolHandle.h.
|
inline |
Definition at line 285 of file ToolHandle.h.
|
inlineoverrideprotectedvirtual |
Implements BaseToolHandle.
Definition at line 304 of file ToolHandle.h.
|
inlineoverrideprotectedvirtual |
Implements BaseToolHandle.
Definition at line 310 of file ToolHandle.h.
|
inlineoverrideprotectedvirtual |
Implements BaseToolHandle.
Definition at line 316 of file ToolHandle.h.
|
inline |
Definition at line 214 of file ToolHandle.h.
|
inline |
Release the AlgTool.
Function must be repeated here to avoid hiding the function release( T*& )
Definition at line 256 of file ToolHandle.h.
|
inlineoverridevirtual |
Do the real release of the AlgTool.
Reimplemented from GaudiHandle< T >.
Definition at line 279 of file ToolHandle.h.
|
inlineoverridevirtual |
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 229 of file ToolHandle.h.
|
inlineoverridevirtual |
Implements BaseToolHandle.
Definition at line 234 of file ToolHandle.h.
|
inlineoverridevirtual |
Implements BaseToolHandle.
Definition at line 244 of file ToolHandle.h.
|
inlineoverridevirtual |
Do the real retrieval of the AlgTool.
Implements GaudiHandle< T >.
Definition at line 262 of file ToolHandle.h.
|
inlineoverridevirtual |
Implements BaseToolHandle.
Definition at line 281 of file ToolHandle.h.
Definition at line 133 of file ToolHandle.h.
Definition at line 134 of file ToolHandle.h.
Definition at line 135 of file ToolHandle.h.
|
mutableprivate |
Definition at line 326 of file ToolHandle.h.