| The Gaudi Framework v30r0 (c919700c)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
DataHandleHolderBase< BASE > Class Template Reference

`#include <GaudiKernel/DataHandleHolderBase.h>`

Inheritance diagram for DataHandleHolderBase< BASE >:
[legend]
Collaboration diagram for DataHandleHolderBase< BASE >:
[legend]

## Public Member Functions
std::vector< Gaudi::DataHandle * > | inputHandles () const override
std::vector< Gaudi::DataHandle * > | outputHandles () const override
virtual const DataObjIDColl & | extraInputDeps () const override
virtual const DataObjIDColl & | extraOutputDeps () const override
void | declare (Gaudi::DataHandle &handle) override
void | renounce (Gaudi::DataHandle &handle) override
const DataObjIDColl & | inputDataObjs () const override
const DataObjIDColl & | outputDataObjs () const override
void | addDependency (const DataObjID &id, const Gaudi::DataHandle::Mode &mode) override
Public Member Functions inherited from extends< BASE, IDataHandleHolder >
void * | i_cast (const InterfaceID &tid) const override
| Implementation of IInterface::i_cast. More...
StatusCode | queryInterface (const InterfaceID &ti, void **pp) override
| Implementation of IInterface::queryInterface. More...
std::vector< std::string > | getInterfaceNames () const override
| Implementation of IInterface::getInterfaceNames. More...
| ~extends () override=default
| Virtual destructor. More...
Public Member Functions inherited from extend_interfaces< Interfaces... >
| ~extend_interfaces () override=default
| Virtual destructor. More...

## Protected Member Functions
void | initDataHandleHolder ()
| initializes all handles - called by the sysInitialize method of any descendant of this More...

## Protected Attributes
DataObjIDColl | m_inputDataObjs
DataObjIDColl | m_outputDataObjs

## Private Attributes
std::unordered_set< Gaudi::DataHandle * > | m_handles
Gaudi::Property< DataObjIDColl > | m_extInputDataObjs {this, "ExtraInputs", DataObjIDColl{}, "[[deprecated]]"}
Gaudi::Property< DataObjIDColl > | m_extOutputDataObjs {this, "ExtraOutputs", DataObjIDColl{}, "[[deprecated]]"}

## Additional Inherited Members
Public Types inherited from extends< BASE, IDataHandleHolder >
using | base_class = extends
| Typedef to this class. More...
using | extend_interfaces_base = extend_interfaces< Interfaces... >
| Typedef to the base of this class. More...
Public Types inherited from extend_interfaces< Interfaces... >
using | ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids... >::type
| take union of the ext_iids of all Interfaces... More...

## Detailed Description

### template<class BASE>
class DataHandleHolderBase< BASE >

Definition at line 25 of file DataHandleHolderBase.h.

## Member Function Documentation

template<class BASE>

void DataHandleHolderBase< BASE >::addDependency | ( | const DataObjID & | id,
|  | const Gaudi::DataHandle::Mode & | mode
| ) |  |
| inline override

Definition at line 64 of file DataHandleHolderBase.h.

65 {
66 if ( mode & Gaudi::DataHandle::Reader ) m_inputDataObjs.emplace( id );
67 if ( mode & Gaudi::DataHandle::Writer ) m_outputDataObjs.emplace( id );
68 }
Gaudi::DataHandle::Reader
Definition: DataHandle.h:31
DataHandleHolderBase::m_inputDataObjs
DataObjIDColl m_inputDataObjs
Definition: DataHandleHolderBase.h:79
std::unordered_set::emplace
T emplace(T...args)
Gaudi::DataHandle::Writer
Definition: DataHandle.h:31
DataHandleHolderBase::m_outputDataObjs
DataObjIDColl m_outputDataObjs
Definition: DataHandleHolderBase.h:79
template<class BASE>

void DataHandleHolderBase< BASE >::declare | ( | Gaudi::DataHandle & | handle | ) |
| inline override

Definition at line 42 of file DataHandleHolderBase.h.

43 {
44 if ( !handle.owner() ) handle.setOwner( this );
45
46 if ( handle.owner() != this ) {
47 throw GaudiException( "Attempt to declare foreign handle with algorithm!", this->name(), StatusCode::FAILURE );
48 }
49
50 m_handles.insert( &handle );
51 }
GaudiException
Define general base for Gaudi exception.
Definition: GaudiException.h:22
Gaudi::DataHandle::setOwner
virtual void setOwner(IDataHandleHolder *o)
Definition: DataHandle.h:41
gaudiComponentHelp.name
name
Definition: gaudiComponentHelp.py:32
std::unordered_set::insert
T insert(T...args)
StatusCode::FAILURE
Definition: StatusCode.h:29
Gaudi::DataHandle::owner
virtual IDataHandleHolder * owner() const
Definition: DataHandle.h:42
DataHandleHolderBase::m_handles
std::unordered_set< Gaudi::DataHandle * > m_handles
Definition: DataHandleHolderBase.h:82
template<class BASE>

virtual const DataObjIDColl& DataHandleHolderBase< BASE >::extraInputDeps | ( |  | ) | const
| inline override virtual

Definition at line 39 of file DataHandleHolderBase.h.

39 { return m_extInputDataObjs; }
DataHandleHolderBase::m_extInputDataObjs
Gaudi::Property< DataObjIDColl > m_extInputDataObjs
Definition: DataHandleHolderBase.h:84
template<class BASE>

virtual const DataObjIDColl& DataHandleHolderBase< BASE >::extraOutputDeps | ( |  | ) | const
| inline override virtual

Definition at line 40 of file DataHandleHolderBase.h.

40 { return m_extOutputDataObjs; }
DataHandleHolderBase::m_extOutputDataObjs
Gaudi::Property< DataObjIDColl > m_extOutputDataObjs
Definition: DataHandleHolderBase.h:85
template<class BASE>

void DataHandleHolderBase< BASE >::initDataHandleHolder | ( |  | ) |
| inline protected

initializes all handles - called by the sysInitialize method of any descendant of this

Definition at line 74 of file DataHandleHolderBase.h.

75 {
76 for ( auto h : m_handles ) h->init();
77 }
DataHandleHolderBase::m_handles
std::unordered_set< Gaudi::DataHandle * > m_handles
Definition: DataHandleHolderBase.h:82
template<class BASE>

const DataObjIDColl& DataHandleHolderBase< BASE >::inputDataObjs | ( |  | ) | const
| inline override

Definition at line 61 of file DataHandleHolderBase.h.

61 { return m_inputDataObjs; }
DataHandleHolderBase::m_inputDataObjs
DataObjIDColl m_inputDataObjs
Definition: DataHandleHolderBase.h:79
template<class BASE>

std::vector<Gaudi::DataHandle*> DataHandleHolderBase< BASE >::inputHandles | ( |  | ) | const
| inline override

Definition at line 30 of file DataHandleHolderBase.h.

31 {
32 return handles( m_handles, Gaudi::DataHandle::Reader );
33 }
Gaudi::DataHandle::Reader
Definition: DataHandle.h:31
DataHandleHolderBase::m_handles
std::unordered_set< Gaudi::DataHandle * > m_handles
Definition: DataHandleHolderBase.h:82
template<class BASE>

const DataObjIDColl& DataHandleHolderBase< BASE >::outputDataObjs | ( |  | ) | const
| inline override

Definition at line 62 of file DataHandleHolderBase.h.

62 { return m_outputDataObjs; }
DataHandleHolderBase::m_outputDataObjs
DataObjIDColl m_outputDataObjs
Definition: DataHandleHolderBase.h:79
template<class BASE>

std::vector<Gaudi::DataHandle*> DataHandleHolderBase< BASE >::outputHandles | ( |  | ) | const
| inline override

Definition at line 34 of file DataHandleHolderBase.h.

35 {
36 return handles( m_handles, Gaudi::DataHandle::Writer );
37 }
Gaudi::DataHandle::Writer
Definition: DataHandle.h:31
DataHandleHolderBase::m_handles
std::unordered_set< Gaudi::DataHandle * > m_handles
Definition: DataHandleHolderBase.h:82
template<class BASE>

void DataHandleHolderBase< BASE >::renounce | ( | Gaudi::DataHandle & | handle | ) |
| inline override

Definition at line 53 of file DataHandleHolderBase.h.

54 {
55 if ( handle.owner() != this ) {
56 throw GaudiException( "Attempt to renounce foreign handle with algorithm!", this->name(), StatusCode::FAILURE );
57 }
58 m_handles.erase( &handle );
59 }
GaudiException
Define general base for Gaudi exception.
Definition: GaudiException.h:22
gaudiComponentHelp.name
name
Definition: gaudiComponentHelp.py:32
std::unordered_set::erase
T erase(T...args)
StatusCode::FAILURE
Definition: StatusCode.h:29
Gaudi::DataHandle::owner
virtual IDataHandleHolder * owner() const
Definition: DataHandle.h:42
DataHandleHolderBase::m_handles
std::unordered_set< Gaudi::DataHandle * > m_handles
Definition: DataHandleHolderBase.h:82

## Member Data Documentation

template<class BASE>

Gaudi::Property<DataObjIDColl> DataHandleHolderBase< BASE >::m_extInputDataObjs {this, "ExtraInputs", DataObjIDColl{}, "[[deprecated]]"}
| private

Definition at line 84 of file DataHandleHolderBase.h.

template<class BASE>

Gaudi::Property<DataObjIDColl> DataHandleHolderBase< BASE >::m_extOutputDataObjs {this, "ExtraOutputs", DataObjIDColl{}, "[[deprecated]]"}
| private

Definition at line 85 of file DataHandleHolderBase.h.

template<class BASE>

std::unordered_set<Gaudi::DataHandle*> DataHandleHolderBase< BASE >::m_handles
| private

Definition at line 82 of file DataHandleHolderBase.h.

template<class BASE>

DataObjIDColl DataHandleHolderBase< BASE >::m_inputDataObjs
| protected

Definition at line 79 of file DataHandleHolderBase.h.

template<class BASE>

DataObjIDColl DataHandleHolderBase< BASE >::m_outputDataObjs
| protected

Definition at line 79 of file DataHandleHolderBase.h.

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

- GaudiKernel/GaudiKernel/DataHandleHolderBase.h