| The Gaudi Framework v32r1 (f65d50dc)

Public Member Functions | List of all members
ToolHandleArray< T > Class Template Reference

Array of Handles to be used in lieu of vector of naked pointers to tools. More...

`#include <GaudiKernel/ToolHandle.h>`

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

## Public Member Functions
| ToolHandleArray (const std::vector< std::string > &myTypesAndNames, const IInterface *parent=nullptr, bool createIf=true)
| Generic constructor. More...
| ToolHandleArray (const IInterface *parent=nullptr, bool createIf=true)
| Constructor which creates and empty list. More...
bool | push_back (const std::string &toolTypeAndName) override
| Add a handle to the array with given tool type and name. More...
bool | push_back (const ToolHandle< T > &myHandle) override
| Ensure that for added handles the parent and creatIf are taken from this array. More...
template<class OWNER , typename = std::enable_if_t<std::is_base_of_v<IProperty, OWNER>>>
| ToolHandleArray (OWNER *owner, std::string name, const std::vector< std::string > &typesAndNames={}, std::string doc="")
| Autodeclaring constructor with property name, tool type/name and documentation. More...
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 GaudiHandleArray< ToolHandle< T > >
virtual | ~GaudiHandleArray ()=default
GaudiHandleArray & | operator= (const std::vector< std::string > &myTypesAndNamesList)
| Set the array of GaudiHandles from typeAndNames given in vector of strings. More...
GaudiHandleArrayBase::BaseHandleArray | getBaseArray () override
| Get a read-write vector of GaudiHandleBase* pointing to the real handles. More...
GaudiHandleArrayBase::ConstBaseHandleArray | getBaseArray () const override
| Get a read-only vector of const GaudiHandleBase* pointing to the real handles. More...
iterator | begin ()
const_iterator | begin () const
iterator | end ()
const_iterator | end () const
const_iterator | rbegin () const
const_iterator | rend () const
size_type | size () const
void | clear () override
| Clear the list of handles. More...
bool | empty () const override
| Return whether the list of tools is empty. More...
ToolHandle< T > & | operator[] (int index)
const ToolHandle< T > & | operator[] (int index) const
ToolHandle< T > * | operator[] (const std::string &name)
| Get pointer (!) to ToolHandle by instance name. More...
const ToolHandle< T > * | operator[] (const std::string &name) const
| Get const pointer (!) to ToolHandle by instance name. More...
virtual bool | push_back (const std::string &myHandleTypeAndName)=0
| Add a handle with given type and name. More...
StatusCode | retrieve ()
| Retrieve all tools. More...
StatusCode | release ()
| Release all tools. More...
virtual bool | retrieved () const override
| has Array been retreived? More...
Public Member Functions inherited from GaudiHandleArrayBase
bool | setTypesAndNames (const std::vector< std::string > &myTypesAndNamesList)
| Set the array of handles from list of "type/name" strings in <myTypesAndNamesList>. More...
const std::vector< std::string > | typesAndNames () const
| Return a vector with "type/name" strings of all handles in the array. More...
const std::vector< std::string > | types () const
| Return a vector with "type" strings of all handles in the array. More...
const std::vector< std::string > | names () const
| Return a vector with "type/name" strings of all handles in the array. More...
const std::vector< std::string > | getBaseInfos (std::string(GaudiHandleBase::*pMemFunc)() const) const
| Helper function to get a vector of strings filled with the return value of each tool of a member function if GaudiHandleBase. More...
std::string | pythonPropertyClassName () const override
| Name of the componentType with "HandleArray" appended. More...
std::string | pythonRepr () const override
| Python representation of array of handles, 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...

## Additional Inherited Members
Public Types inherited from GaudiHandleArray< ToolHandle< T > >
typedef std::vector< ToolHandle< T > > | HandleVector
typedef HandleVector::value_type | value_type
typedef HandleVector::size_type | size_type
typedef HandleVector::reference | reference
typedef HandleVector::const_reference | const_reference
typedef HandleVector::iterator | iterator
typedef HandleVector::const_iterator | const_iterator
typedef HandleVector::reverse_iterator | reverse_iterator
typedef HandleVector::const_reverse_iterator | const_reverse_iterator
Public Types inherited from GaudiHandleArrayBase
using | PropertyType = GaudiHandleArrayProperty
typedef std::vector< GaudiHandleBase * > | BaseHandleArray
typedef std::vector< const GaudiHandleBase * > | ConstBaseHandleArray
Static Public Member Functions inherited from ToolHandleInfo
static std::string | toolComponentType (const IInterface *parent)
static std::string | toolParentName (const IInterface *parent)
Protected Member Functions inherited from ToolHandleInfo
| ToolHandleInfo (const IInterface *parent=nullptr, bool createIf=true)
Protected Member Functions inherited from GaudiHandleArray< ToolHandle< T > >
| GaudiHandleArray (const std::vector< std::string > &myTypesAndNamesList, std::string myComponentType, std::string myParentName)
| Generic constructor. More...
| GaudiHandleArray (const std::string &myComponentType, const std::string &myParentName)
| Constructor creating an empty array. More...
Protected Member Functions inherited from GaudiHandleArrayBase
| GaudiHandleArrayBase (std::string myComponentType, std::string myParentName)
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...
Protected Attributes inherited from ToolHandleInfo
const IInterface * | m_parent = nullptr
bool | m_createIf {true}

## Detailed Description

### template<class T>
class ToolHandleArray< T >

Array of Handles to be used in lieu of vector of naked pointers to tools.

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

Author
  Marti.nosp@m.n.Wo.nosp@m.udstr.nosp@m.a@ce.nosp@m.rn.ch

Definition at line 350 of file ToolHandle.h.

## Constructor & Destructor Documentation

## ◆ ToolHandleArray() [1/3]

template<class T>

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

Generic constructor.

Probably not very useful...

Parameters

  typesAndNamesList | : a vector of strings with the concrete "type/name" strings for the list of tools
  parent | : passed on to ToolHandle, so has the same meaning as for ToolHandle
  createIf | : passed on to ToolHandle, so has the same meaning as for ToolHandle

Definition at line 361 of file ToolHandle.h.

363 : ToolHandleInfo( parent, createIf )
364 , GaudiHandleArray<ToolHandle<T>>( myTypesAndNames, ToolHandleInfo::toolComponentType( parent ),
365 ToolHandleInfo::toolParentName( parent ) ) {}
ToolHandleInfo::createIf
bool createIf() const noexcept
Definition: ToolHandle.h:42
ToolHandleInfo::toolParentName
static std::string toolParentName(const IInterface *parent)
Definition: ToolHandle.h:52
ToolHandleInfo::toolComponentType
static std::string toolComponentType(const IInterface *parent)
Definition: ToolHandle.h:50
ToolHandleInfo::parent
const IInterface * parent() const noexcept
Definition: ToolHandle.h:44
ToolHandleInfo::ToolHandleInfo
ToolHandleInfo(const IInterface *parent=nullptr, bool createIf=true)
Definition: ToolHandle.h:34
GaudiHandleArray
T is the concrete handle type, e.g.
Definition: GaudiHandle.h:393

## ◆ ToolHandleArray() [2/3]

template<class T>

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

Constructor which creates and empty list.

Parameters

  parent | : passed on to ToolHandle, so has the same meaning as for ToolHandle
  createIf | : passed on to ToolHandle, so has the same meaning as for ToolHandle

Definition at line 371 of file ToolHandle.h.

372 : ToolHandleInfo( parent, createIf )
373 , GaudiHandleArray<ToolHandle<T>>( ToolHandleInfo::toolComponentType( parent ),
374 ToolHandleInfo::toolParentName( parent ) ) {}
ToolHandleInfo::createIf
bool createIf() const noexcept
Definition: ToolHandle.h:42
ToolHandleInfo::toolParentName
static std::string toolParentName(const IInterface *parent)
Definition: ToolHandle.h:52
ToolHandleInfo::toolComponentType
static std::string toolComponentType(const IInterface *parent)
Definition: ToolHandle.h:50
ToolHandleInfo::parent
const IInterface * parent() const noexcept
Definition: ToolHandle.h:44
ToolHandleInfo::ToolHandleInfo
ToolHandleInfo(const IInterface *parent=nullptr, bool createIf=true)
Definition: ToolHandle.h:34
GaudiHandleArray
T is the concrete handle type, e.g.
Definition: GaudiHandle.h:393

## ◆ ToolHandleArray() [3/3]

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

ToolHandleArray< T >::ToolHandleArray | ( | OWNER * | owner,
|  | std::string | name,
|  | const std::vector< std::string > & | typesAndNames = `{}`,
|  | std::string | doc = `""`
| ) |  |
| inline

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

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

Definition at line 392 of file ToolHandle.h.

392 {},
393 std::string doc = "" )
394 : ToolHandleArray( typesAndNames, owner ) {
395 owner->addToolsArray( *this );
396 auto p = owner->OWNER::PropertyHolderImpl::declareProperty( std::move( name ), *this, std::move( doc ) );
397 p->template setOwnerType<OWNER>();
398 }
gaudiComponentHelp.name
name
Definition: gaudiComponentHelp.py:41
GaudiHandleArrayBase::typesAndNames
const std::vector< std::string > typesAndNames() const
Return a vector with "type/name" strings of all handles in the array.
Definition: GaudiHandle.cpp:68
std::string
STL class.
std::move
T move(T... args)
ToolHandleArray::ToolHandleArray
ToolHandleArray(const std::vector< std::string > &myTypesAndNames, const IInterface *parent=nullptr, bool createIf=true)
Generic constructor.
Definition: ToolHandle.h:361

## Member Function Documentation

## ◆ push_back() [1/2]

template<class T>

bool ToolHandleArray< T >::push_back | ( | const std::string & | toolTypeAndName | ) |
| inline override virtual

Add a handle to the array with given tool type and name.

This function overrides the one in GaudiHandleArray<T>, as this is a special case. The private/public choice and createIf is determined by what was given in the constructor of the ToolHandleArray.

Implements GaudiHandleArrayBase.

Definition at line 380 of file ToolHandle.h.

380 {
381 ToolHandle<T> handle( toolTypeAndName, ToolHandleInfo::parent(), ToolHandleInfo::createIf() );
382 GaudiHandleArray<ToolHandle<T>>::push_back( handle );
383 return true;
384 }
ToolHandleInfo::createIf
bool createIf() const noexcept
Definition: ToolHandle.h:42
ToolHandleArray::push_back
bool push_back(const std::string &toolTypeAndName) override
Add a handle to the array with given tool type and name.
Definition: ToolHandle.h:380
ToolHandle
Handle to be used in lieu of naked pointers to tools.
Definition: ToolHandle.h:125
ToolHandleInfo::parent
const IInterface * parent() const noexcept
Definition: ToolHandle.h:44
GaudiHandleArray
T is the concrete handle type, e.g.
Definition: GaudiHandle.h:393

## ◆ push_back() [2/2]

template<class T>

bool ToolHandleArray< T >::push_back | ( | const ToolHandle< T > & | myHandle | ) |
| inline override virtual

Ensure that for added handles the parent and creatIf are taken from this array.

Reimplemented from GaudiHandleArray< ToolHandle< T > >.

Definition at line 387 of file ToolHandle.h.

387 { return push_back( myHandle.typeAndName() ); }
ToolHandle::typeAndName
std::string typeAndName() const override
Definition: ToolHandle.h:260
ToolHandleArray::push_back
bool push_back(const std::string &toolTypeAndName) override
Add a handle to the array with given tool type and name.
Definition: ToolHandle.h:380

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

- GaudiKernel/GaudiKernel/ToolHandle.h