The Gaudi Framework  master (594c33fa)
GaudiHandleArrayBase Class Referenceabstract

Base class of array's of various gaudihandles. More...

#include </builds/gaudi/Gaudi/GaudiKernel/include/GaudiKernel/GaudiHandle.h>

Inheritance diagram for GaudiHandleArrayBase:
Collaboration diagram for GaudiHandleArrayBase:

Public Types

using PropertyType = GaudiHandleArrayProperty
 
typedef std::vector< GaudiHandleBase * > BaseHandleArray
 
typedef std::vector< const GaudiHandleBase * > ConstBaseHandleArray
 

Public Member Functions

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::stringtypesAndNames () const
 Return a vector with "type/name" strings of all handles in the array. More...
 
const std::vector< std::stringtypes () const
 Return a vector with "type" strings of all handles in the array. More...
 
const std::vector< std::stringnames () const
 Return a vector with "type/name" strings of all handles in the array. More...
 
const std::vector< std::stringgetBaseInfos (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...
 
virtual void clear ()=0
 Clear the list of handles. More...
 
virtual bool empty () const =0
 Return whether the list of tools is empty. More...
 
virtual ConstBaseHandleArray getBaseArray () const =0
 Get a read-only vector of const GaudiHandleBase* pointing to the real handles. More...
 
virtual BaseHandleArray getBaseArray ()=0
 Get a read-write vector of GaudiHandleBase* pointing to the real handles. More...
 
virtual bool retrieved () const =0
 To be able to tell if Array was ever retreived. More...
 
- Public Member Functions inherited from GaudiHandleInfo
virtual ~GaudiHandleInfo ()
 virtual destructor so that derived class destructor is called. More...
 
const std::stringcomponentType () const
 
const std::stringpropertyName () 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::stringparentName () const
 The name of the parent. More...
 

Protected Member Functions

 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 (std::string componentType)
 The component type. More...
 
void setParentName (std::string parent)
 The name of the parent. More...
 

Detailed Description

Base class of array's of various gaudihandles.

Used in communication with GaudiHandleArrayProperty. For that purpose is has some pure virtual functions. This is a non-templated class to one Property can handle all kinds of concrete handles.

Definition at line 345 of file GaudiHandle.h.

Member Typedef Documentation

◆ BaseHandleArray

◆ ConstBaseHandleArray

◆ PropertyType

Constructor & Destructor Documentation

◆ GaudiHandleArrayBase()

GaudiHandleArrayBase::GaudiHandleArrayBase ( std::string  myComponentType,
std::string  myParentName 
)
inlineprotected

Definition at line 347 of file GaudiHandle.h.

348  : GaudiHandleInfo( std::move( myComponentType ), std::move( myParentName ) ) {}

Member Function Documentation

◆ clear()

◆ empty()

virtual bool GaudiHandleArrayBase::empty ( ) const
pure virtual

Return whether the list of tools is empty.

Implemented in GaudiHandleArray< T >.

◆ getBaseArray() [1/2]

virtual ConstBaseHandleArray GaudiHandleArrayBase::getBaseArray ( ) const
pure virtual

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

Implemented in GaudiHandleArray.

Implemented in GaudiHandleArray< T >.

◆ getBaseArray() [2/2]

◆ getBaseInfos()

const std::vector< std::string > GaudiHandleArrayBase::getBaseInfos ( std::string(GaudiHandleBase::*)() const  pMemFunc) const

Helper function to get a vector of strings filled with the return value of each tool of a member function if GaudiHandleBase.

Definition at line 71 of file GaudiHandle.cpp.

72  {
74  for ( const auto& it : getBaseArray() ) theList.push_back( ( it->*pMemFunc )() );
75  return theList;
76 }

◆ names()

const std::vector< std::string > GaudiHandleArrayBase::names ( ) const

Return a vector with "type/name" strings of all handles in the array.

Definition at line 84 of file GaudiHandle.cpp.

84 { return getBaseInfos( &GaudiHandleBase::name ); }

◆ push_back()

virtual bool GaudiHandleArrayBase::push_back ( const std::string myHandleTypeAndName)
pure virtual

Add a handle to the array with "type/name" given in <myHandleTypeAndName>.

Return whether addition was successful or not. Must be implemented by derived class with concrete handle category.

Implemented in ToolHandleArray< T >, ToolHandleArray< IMyTool >, ToolHandleArray< IThreadInitTool >, and ServiceHandleArray< T >.

◆ pythonPropertyClassName()

std::string GaudiHandleArrayBase::pythonPropertyClassName ( ) const
overridevirtual

Name of the componentType with "HandleArray" appended.

Used as the python class name for the property in the genconf-generated configurables. The python class is defined in GaudiPython/python/GaudiHandles.py.

Implements GaudiHandleInfo.

Definition at line 86 of file GaudiHandle.cpp.

86 { return componentType() + "HandleArray"; }

◆ pythonRepr()

std::string GaudiHandleArrayBase::pythonRepr ( ) const
overridevirtual

Python representation of array of handles, i.e.

list of python handles. Can be used in the genconf-generated configurables. The corresponding python classes are defined in GaudiPython/GaudiHandles.py

Implements GaudiHandleInfo.

Definition at line 88 of file GaudiHandle.cpp.

88  {
89  std::string repr = pythonPropertyClassName() + "([";
90  auto theList = typesAndNames();
91  auto first = theList.begin();
92  auto last = theList.end();
93  if ( first != last ) {
94  repr += "'" + *first + "'";
95  ++first;
96  }
97  for ( ; first != last; ++first ) repr += ",'" + *first + "'";
98  repr += "])";
99  return repr;
100 }

◆ retrieved()

virtual bool GaudiHandleArrayBase::retrieved ( ) const
pure virtual

To be able to tell if Array was ever retreived.

Implemented in GaudiHandleArray< T >.

◆ setTypesAndNames()

bool GaudiHandleArrayBase::setTypesAndNames ( const std::vector< std::string > &  myTypesAndNamesList)

Set the array of handles from list of "type/name" strings in <myTypesAndNamesList>.

Return whether set was successful or not

Definition at line 63 of file GaudiHandle.cpp.

63  {
64  clear();
65  for ( const auto& it : myTypesAndNamesList ) {
66  if ( !push_back( it ) ) return false;
67  }
68  return true;
69 }

◆ types()

const std::vector< std::string > GaudiHandleArrayBase::types ( ) const

Return a vector with "type" strings of all handles in the array.

Definition at line 82 of file GaudiHandle.cpp.

82 { return getBaseInfos( &GaudiHandleBase::type ); }

◆ typesAndNames()

const std::vector< std::string > GaudiHandleArrayBase::typesAndNames ( ) const

Return a vector with "type/name" strings of all handles in the array.

Inverse of setTypesAndNames()

Definition at line 78 of file GaudiHandle.cpp.

78  {
80 }

The documentation for this class was generated from the following files:
std::string
STL class.
std::move
T move(T... args)
std::vector< std::string >
GaudiHandleBase::name
std::string name() const
The instance name: the part after the '/'.
Definition: GaudiHandle.cpp:32
GaudiHandleInfo::componentType
const std::string & componentType() const
Definition: GaudiHandle.h:57
std::vector::push_back
T push_back(T... args)
GaudiHandleArrayBase::getBaseInfos
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 func...
Definition: GaudiHandle.cpp:71
GaudiHandleBase::typeAndName
std::string typeAndName() const
The full type and name: "type/name".
Definition: GaudiHandle.h:128
GaudiHandleArrayBase::clear
virtual void clear()=0
Clear the list of handles.
GaudiHandleArrayBase::getBaseArray
virtual ConstBaseHandleArray getBaseArray() const =0
Get a read-only vector of const GaudiHandleBase* pointing to the real handles.
GaudiHandleInfo::GaudiHandleInfo
GaudiHandleInfo(std::string myComponentType, std::string myParentName)
Some basic information and helper functions shared between various handles/arrays.
Definition: GaudiHandle.h:45
GaudiHandleBase::type
std::string type() const
The concrete component class name: the part before the '/'.
Definition: GaudiHandle.cpp:21
GaudiHandleArrayBase::push_back
virtual bool push_back(const std::string &myHandleTypeAndName)=0
Add a handle to the array with "type/name" given in <myHandleTypeAndName>.
GaudiHandleArrayBase::pythonPropertyClassName
std::string pythonPropertyClassName() const override
Name of the componentType with "HandleArray" appended.
Definition: GaudiHandle.cpp:86
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:78