The Gaudi Framework
v30r3 (a5ef0a68)
|
Handle to be used in lieu of naked pointers to gaudis. More...
#include <GaudiKernel/GaudiHandle.h>
Public Member Functions | |
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 | |
GaudiHandle (std::string myTypeAndName, std::string myComponentType, std::string myParentName) | |
virtual StatusCode | retrieve (T *&) const =0 |
Retrieve the component. More... | |
virtual StatusCode | release (T *comp) const |
Release the component. More... | |
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 Member Functions | |
void | setDefaultTypeAndName () |
Helper function to set default name and type. More... | |
void | setDefaultType () |
Helper function to set default type from the class type T. More... | |
void | assertObject () const |
Load the pointer to the component. More... | |
Private Attributes | |
T * | m_pObject = nullptr |
Additional Inherited Members | |
Public Types inherited from GaudiHandleBase | |
using | PropertyType = GaudiHandleProperty |
Handle to be used in lieu of naked pointers to gaudis.
This allows better control through the framework of gaudi loading and usage. T is the type of the component interface (or concrete class).
Definition at line 170 of file GaudiHandle.h.
|
inlineprotected |
Definition at line 176 of file GaudiHandle.h.
|
inline |
Copy constructor needed for correct ref-counting.
Definition at line 184 of file GaudiHandle.h.
|
inline |
Copy constructor needed for correct ref-counting.
Definition at line 193 of file GaudiHandle.h.
|
inlineprivate |
Load the pointer to the component.
Do a retrieve if needed. Throw an exception if retrieval fails.
Definition at line 333 of file GaudiHandle.h.
|
inline |
Return the wrapped pointer, not calling retrieve() if null.
Definition at line 264 of file GaudiHandle.h.
|
inline |
Return the wrapped pointer, not calling retrieve() if null.
Definition at line 267 of file GaudiHandle.h.
|
inline |
Definition at line 301 of file GaudiHandle.h.
|
inline |
Helper function to get default type string from the class type.
Definition at line 299 of file GaudiHandle.h.
|
inline |
True if the wrapped pointer is not null.
Definition at line 270 of file GaudiHandle.h.
|
inline |
Check if the handle is valid (try to retrive the object is not done yet).
Definition at line 251 of file GaudiHandle.h.
|
inline |
For testing if handle has component.
Does retrieve() if needed. If this returns false, the component could not be retrieved.
Definition at line 258 of file GaudiHandle.h.
|
inline |
Definition at line 272 of file GaudiHandle.h.
|
inline |
Definition at line 284 of file GaudiHandle.h.
|
inline |
Definition at line 278 of file GaudiHandle.h.
|
inline |
Definition at line 291 of file GaudiHandle.h.
|
inline |
Assignment operator for correct ref-counting.
Definition at line 202 of file GaudiHandle.h.
|
inline |
Assignment operator for correct ref-counting.
Definition at line 214 of file GaudiHandle.h.
|
inline |
Release the component.
Definition at line 240 of file GaudiHandle.h.
|
inlineprotectedvirtual |
Release the component.
Default implementation calls release() on the component. Can be overridden by the derived class if something else is needed.
Reimplemented in ToolHandle< T >, and ToolHandle< IThreadInitTool >.
Definition at line 313 of file GaudiHandle.h.
|
inline |
Retrieve the component.
Release existing component if needed.
Definition at line 226 of file GaudiHandle.h.
|
protectedpure virtual |
Retrieve the component.
To be implemented by the derived class. It will pass the pointer
Implemented in ToolHandle< T >, ToolHandle< IThreadInitTool >, ServiceHandle< T >, and ServiceHandle< IToolSvc >.
|
inlineprivate |
Helper function to set default type from the class type T.
Definition at line 329 of file GaudiHandle.h.
|
inlineprivate |
Helper function to set default name and type.
Definition at line 322 of file GaudiHandle.h.
|
mutableprivate |
Definition at line 345 of file GaudiHandle.h.