| The Gaudi Framework v32r1 (f65d50dc)

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

T is the concrete handle type, e.g. More...

`#include <GaudiKernel/GaudiHandle.h>`

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

## Public Types
typedef std::vector< 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

## Public Member Functions
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 ()
iterator | end ()
const_iterator | begin () const
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...
T & | operator[] (int index)
const T & | operator[] (int index) const
T * | operator[] (const std::string &name)
| Get pointer (!) to ToolHandle by instance name. More...
const T * | operator[] (const std::string &name) const
| Get const pointer (!) to ToolHandle by instance name. More...
virtual bool | push_back (const T &myHandle)
StatusCode | retrieve ()
| Retrieve all tools. More...
StatusCode | release ()
| Release all tools. More...
virtual bool | retrieved () const override
| has Array been retreived? More...
virtual bool | push_back (const std::string &myHandleTypeAndName)=0
| Add a handle with given type and name. 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...
virtual bool | push_back (const std::string &myHandleTypeAndName)=0
| Add a handle to the array with "type/name" given in <myHandleTypeAndName>. 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
| 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...

## Private Attributes
HandleVector | m_handleArray
bool | m_retrieved {false}

## Detailed Description

### template<class T>
class GaudiHandleArray< T >

T is the concrete handle type, e.g.

ToolHandle<IMyTool>

Definition at line 393 of file GaudiHandle.h.

## Member Typedef Documentation

## ◆ const_iterator

template<class T>

typedef HandleVector::const_iterator GaudiHandleArray< T >::const_iterator

Definition at line 404 of file GaudiHandle.h.

## ◆ const_reference

template<class T>

typedef HandleVector::const_reference GaudiHandleArray< T >::const_reference

Definition at line 402 of file GaudiHandle.h.

## ◆ const_reverse_iterator

template<class T>

typedef HandleVector::const_reverse_iterator GaudiHandleArray< T >::const_reverse_iterator

Definition at line 406 of file GaudiHandle.h.

## ◆ HandleVector

template<class T>

typedef std::vector<T> GaudiHandleArray< T >::HandleVector

Definition at line 398 of file GaudiHandle.h.

## ◆ iterator

template<class T>

typedef HandleVector::iterator GaudiHandleArray< T >::iterator

Definition at line 403 of file GaudiHandle.h.

## ◆ reference

template<class T>

typedef HandleVector::reference GaudiHandleArray< T >::reference

Definition at line 401 of file GaudiHandle.h.

## ◆ reverse_iterator

template<class T>

typedef HandleVector::reverse_iterator GaudiHandleArray< T >::reverse_iterator

Definition at line 405 of file GaudiHandle.h.

## ◆ size_type

template<class T>

typedef HandleVector::size_type GaudiHandleArray< T >::size_type

Definition at line 400 of file GaudiHandle.h.

## ◆ value_type

template<class T>

typedef HandleVector::value_type GaudiHandleArray< T >::value_type

Definition at line 399 of file GaudiHandle.h.

## Constructor & Destructor Documentation

## ◆ GaudiHandleArray() [1/2]

template<class T>

GaudiHandleArray< T >::GaudiHandleArray | ( | const std::vector< std::string > & | myTypesAndNamesList,
|  | std::string | myComponentType,
|  | std::string | myParentName
| ) |  |
| inline protected

Generic constructor.

Probably not very useful...

Parameters

  typesAndNamesList | : a vector of strings with the concrete "type/name" strings for the list of tools

Definition at line 416 of file GaudiHandle.h.

418 : GaudiHandleArrayBase( std::move( myComponentType ), std::move( myParentName ) ) {
419 setTypesAndNames( myTypesAndNamesList );
420 }
GaudiHandleArrayBase::setTypesAndNames
bool setTypesAndNames(const std::vector< std::string > &myTypesAndNamesList)
Set the array of handles from list of "type/name" strings in <myTypesAndNamesList>.
Definition: GaudiHandle.cpp:53
std::move
T move(T... args)
GaudiHandleArrayBase::GaudiHandleArrayBase
GaudiHandleArrayBase(std::string myComponentType, std::string myParentName)
Definition: GaudiHandle.h:332

## ◆ GaudiHandleArray() [2/2]

template<class T>

GaudiHandleArray< T >::GaudiHandleArray | ( | const std::string & | myComponentType,
|  | const std::string & | myParentName
| ) |  |
| inline protected

Constructor creating an empty array.

Parameters

  typesAndNamesList | : a vector of strings with the concrete "type/name" strings for the list of tools

Definition at line 426 of file GaudiHandle.h.

427 : GaudiHandleArrayBase( myComponentType, myParentName ) {}
GaudiHandleArrayBase::GaudiHandleArrayBase
GaudiHandleArrayBase(std::string myComponentType, std::string myParentName)
Definition: GaudiHandle.h:332

## ◆ ~GaudiHandleArray()

template<class T>

virtual GaudiHandleArray< T >::~GaudiHandleArray | ( |  | ) |
| virtual default

## Member Function Documentation

## ◆ begin() [1/2]

template<class T>

iterator GaudiHandleArray< T >::begin | ( |  | ) |
| inline

Definition at line 455 of file GaudiHandle.h.

455 { return m_handleArray.begin(); }
GaudiHandleArray::m_handleArray
HandleVector m_handleArray
Definition: GaudiHandle.h:528
std::vector::begin
T begin(T... args)

## ◆ begin() [2/2]

template<class T>

const_iterator GaudiHandleArray< T >::begin | ( |  | ) | const
| inline

Definition at line 459 of file GaudiHandle.h.

459 { return m_handleArray.begin(); }
GaudiHandleArray::m_handleArray
HandleVector m_handleArray
Definition: GaudiHandle.h:528
std::vector::begin
T begin(T... args)

## ◆ clear()

template<class T>

void GaudiHandleArray< T >::clear | ( |  | ) |
| inline override virtual

Clear the list of handles.

Implemented in GaudiHandleArray

Implements GaudiHandleArrayBase.

Definition at line 469 of file GaudiHandle.h.

469 { m_handleArray.clear(); }
GaudiHandleArray::m_handleArray
HandleVector m_handleArray
Definition: GaudiHandle.h:528
std::vector::clear
T clear(T... args)

## ◆ empty()

template<class T>

bool GaudiHandleArray< T >::empty | ( |  | ) | const
| inline override virtual

Return whether the list of tools is empty.

Implements GaudiHandleArrayBase.

Definition at line 471 of file GaudiHandle.h.

471 { return m_handleArray.empty(); }
std::vector::empty
T empty(T... args)
GaudiHandleArray::m_handleArray
HandleVector m_handleArray
Definition: GaudiHandle.h:528

## ◆ end() [1/2]

template<class T>

iterator GaudiHandleArray< T >::end | ( |  | ) |
| inline

Definition at line 457 of file GaudiHandle.h.

457 { return m_handleArray.end(); }
std::vector::end
T end(T... args)
GaudiHandleArray::m_handleArray
HandleVector m_handleArray
Definition: GaudiHandle.h:528

## ◆ end() [2/2]

template<class T>

const_iterator GaudiHandleArray< T >::end | ( |  | ) | const
| inline

Definition at line 461 of file GaudiHandle.h.

461 { return m_handleArray.end(); }
std::vector::end
T end(T... args)
GaudiHandleArray::m_handleArray
HandleVector m_handleArray
Definition: GaudiHandle.h:528

## ◆ getBaseArray() [1/2]

template<class T>

GaudiHandleArrayBase::BaseHandleArray GaudiHandleArray< T >::getBaseArray | ( |  | ) |
| inline override virtual

Get a read-write vector of GaudiHandleBase* pointing to the real handles.

Implemented in GaudiHandleArray.

Implements GaudiHandleArrayBase.

Definition at line 438 of file GaudiHandle.h.

438 {
439 GaudiHandleArrayBase::BaseHandleArray baseArray;
440 iterator it = begin(), itEnd = end();
441 for ( ; it != itEnd; ++it ) baseArray.push_back( &*it );
442 return baseArray;
443 }
GaudiHandleArray::iterator
HandleVector::iterator iterator
Definition: GaudiHandle.h:403
std::vector::push_back
T push_back(T... args)
GaudiHandleArray::begin
iterator begin()
Definition: GaudiHandle.h:455
std::vector
STL class.
GaudiHandleArray::end
iterator end()
Definition: GaudiHandle.h:457

## ◆ getBaseArray() [2/2]

template<class T>

GaudiHandleArrayBase::ConstBaseHandleArray GaudiHandleArray< T >::getBaseArray | ( |  | ) | const
| inline override virtual

Get a read-only vector of const GaudiHandleBase* pointing to the real handles.

Implemented in GaudiHandleArray.

Implements GaudiHandleArrayBase.

Definition at line 445 of file GaudiHandle.h.

445 {
446 GaudiHandleArrayBase::ConstBaseHandleArray baseArray;
447 const_iterator it = begin(), itEnd = end();
448 for ( ; it != itEnd; ++it ) baseArray.push_back( &*it );
449 return baseArray;
450 }
std::vector::push_back
T push_back(T... args)
GaudiHandleArray::begin
iterator begin()
Definition: GaudiHandle.h:455
GaudiHandleArray::const_iterator
HandleVector::const_iterator const_iterator
Definition: GaudiHandle.h:404
std::vector
STL class.
GaudiHandleArray::end
iterator end()
Definition: GaudiHandle.h:457

## ◆ operator=()

template<class T>

GaudiHandleArray& GaudiHandleArray< T >::operator= | ( | const std::vector< std::string > & | myTypesAndNamesList | ) |
| inline

Set the array of GaudiHandles from typeAndNames given in vector of strings.

Definition at line 433 of file GaudiHandle.h.

433 {
434 setTypesAndNames( myTypesAndNamesList );
435 return *this;
436 }
GaudiHandleArrayBase::setTypesAndNames
bool setTypesAndNames(const std::vector< std::string > &myTypesAndNamesList)
Set the array of handles from list of "type/name" strings in <myTypesAndNamesList>.
Definition: GaudiHandle.cpp:53

## ◆ operator[]() [1/4]

template<class T>

T& GaudiHandleArray< T >::operator[] | ( | int | index | ) |
| inline

Definition at line 473 of file GaudiHandle.h.

473 { return m_handleArray[index]; }
GaudiHandleArray::m_handleArray
HandleVector m_handleArray
Definition: GaudiHandle.h:528

## ◆ operator[]() [2/4]

template<class T>

const T& GaudiHandleArray< T >::operator[] | ( | int | index | ) | const
| inline

Definition at line 475 of file GaudiHandle.h.

475 { return m_handleArray[index]; }
GaudiHandleArray::m_handleArray
HandleVector m_handleArray
Definition: GaudiHandle.h:528

## ◆ operator[]() [3/4]

template<class T>

T* GaudiHandleArray< T >::operator[] | ( | const std::string & | name | ) |
| inline

Get pointer (!) to ToolHandle by instance name.

Returns zero pointer if not found

Definition at line 478 of file GaudiHandle.h.

478 {
479 auto it = std::find_if( begin(), end(), [&]( const_reference r ) { return r.name() == name; } );
480 return it != end() ? &*it : nullptr;
481 }
GaudiHandleArray::const_reference
HandleVector::const_reference const_reference
Definition: GaudiHandle.h:402
gaudiComponentHelp.name
name
Definition: gaudiComponentHelp.py:41
GaudiHandleArray::begin
iterator begin()
Definition: GaudiHandle.h:455
std::find_if
T find_if(T... args)
GaudiHandleArray::end
iterator end()
Definition: GaudiHandle.h:457

## ◆ operator[]() [4/4]

template<class T>

const T* GaudiHandleArray< T >::operator[] | ( | const std::string & | name | ) | const
| inline

Get const pointer (!) to ToolHandle by instance name.

Returns zero pointer if not found

Definition at line 484 of file GaudiHandle.h.

484 {
485 auto it = std::find_if( begin(), end(), [&]( const_reference r ) { return r.name() == name; } );
486 return it != end() ? &*it : nullptr;
487 }
GaudiHandleArray::const_reference
HandleVector::const_reference const_reference
Definition: GaudiHandle.h:402
gaudiComponentHelp.name
name
Definition: gaudiComponentHelp.py:41
GaudiHandleArray::begin
iterator begin()
Definition: GaudiHandle.h:455
std::find_if
T find_if(T... args)
GaudiHandleArray::end
iterator end()
Definition: GaudiHandle.h:457

## ◆ push_back() [1/2]

template<class T>

virtual bool GaudiHandleArrayBase::push_back

Add a handle with given type and name.

Can be overridden in derived class. Return whether addition was successful or not.

## ◆ push_back() [2/2]

template<class T>

virtual bool GaudiHandleArray< T >::push_back | ( | const T & | myHandle | ) |
| inline virtual

Reimplemented in ToolHandleArray< T >, ToolHandleArray< IThreadInitTool >, and ServiceHandleArray< T >.

Definition at line 492 of file GaudiHandle.h.

492 {
493 m_handleArray.push_back( myHandle );
494 return true;
495 }
std::vector::push_back
T push_back(T... args)
GaudiHandleArray::m_handleArray
HandleVector m_handleArray
Definition: GaudiHandle.h:528

## ◆ rbegin()

template<class T>

const_iterator GaudiHandleArray< T >::rbegin | ( |  | ) | const
| inline

Definition at line 463 of file GaudiHandle.h.

463 { return m_handleArray.rbegin(); }
GaudiHandleArray::m_handleArray
HandleVector m_handleArray
Definition: GaudiHandle.h:528
std::vector::rbegin
T rbegin(T... args)

## ◆ release()

template<class T>

StatusCode GaudiHandleArray< T >::release | ( |  | ) |
| inline

Release all tools.

Definition at line 512 of file GaudiHandle.h.

512 {
513 StatusCode sc = StatusCode::SUCCESS;
514 for ( auto& i : *this ) {
515 // continue trying to release other tools even if we fail...
516 if ( i.release().isFailure() ) sc = StatusCode::FAILURE;
517 }
518 return sc;
519 }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86

## ◆ rend()

template<class T>

const_iterator GaudiHandleArray< T >::rend | ( |  | ) | const
| inline

Definition at line 465 of file GaudiHandle.h.

465 { return m_handleArray.rend(); }
std::vector::rend
T rend(T... args)
GaudiHandleArray::m_handleArray
HandleVector m_handleArray
Definition: GaudiHandle.h:528

## ◆ retrieve()

template<class T>

StatusCode GaudiHandleArray< T >::retrieve | ( |  | ) |
| inline

Retrieve all tools.

Definition at line 498 of file GaudiHandle.h.

498 {
499 StatusCode sc = StatusCode::SUCCESS;
500 for ( auto& i : *this ) {
501 // stop at first failure
502 if ( i.retrieve().isFailure() ) {
503 sc = StatusCode::FAILURE;
504 break;
505 }
506 }
507 if ( sc ) { m_retrieved = true; }
508 return sc;
509 }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
GaudiHandleArray::m_retrieved
bool m_retrieved
Definition: GaudiHandle.h:529
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86

## ◆ retrieved()

template<class T>

virtual bool GaudiHandleArray< T >::retrieved | ( |  | ) | const
| inline override virtual

has Array been retreived?

Implements GaudiHandleArrayBase.

Definition at line 522 of file GaudiHandle.h.

522 { return m_retrieved; }
GaudiHandleArray::m_retrieved
bool m_retrieved
Definition: GaudiHandle.h:529

## ◆ size()

template<class T>

size_type GaudiHandleArray< T >::size | ( |  | ) | const
| inline

Definition at line 467 of file GaudiHandle.h.

467 { return m_handleArray.size(); }
GaudiHandleArray::m_handleArray
HandleVector m_handleArray
Definition: GaudiHandle.h:528
std::vector::size
T size(T... args)

## Member Data Documentation

## ◆ m_handleArray

template<class T>

HandleVector GaudiHandleArray< T >::m_handleArray
| private

Definition at line 528 of file GaudiHandle.h.

## ◆ m_retrieved

template<class T>

bool GaudiHandleArray< T >::m_retrieved {false}
| private

Definition at line 529 of file GaudiHandle.h.

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

- GaudiKernel/GaudiKernel/GaudiHandle.h