DataHandleHolderBase< BASE > Class Template Reference

#include <GaudiKernel/DataHandleHolderBase.h>

Inheritance diagram for DataHandleHolderBase< BASE >:
Collaboration diagram for DataHandleHolderBase< BASE >:

Public Member Functions

std::vector< Gaudi::DataHandle * > inputHandles () const override
 
std::vector< Gaudi::DataHandle * > outputHandles () const override
 
virtual const DataObjIDCollextraInputDeps () const override
 
virtual const DataObjIDCollextraOutputDeps () const override
 
void declare (Gaudi::DataHandle &handle) override
 
void renounce (Gaudi::DataHandle &handle) 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::stringgetInterfaceNames () 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...
 

Private Attributes

std::unordered_set< Gaudi::DataHandle * > m_handles
 
Gaudi::Property< DataObjIDCollm_extInputDataObjs {this, "ExtraInputs", DataObjIDColl{}, "[[deprecated]]"}
 
Gaudi::Property< DataObjIDCollm_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 >::declare ( Gaudi::DataHandle handle)
inlineoverride

Definition at line 44 of file DataHandleHolderBase.h.

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

Definition at line 37 of file DataHandleHolderBase.h.

37  {
38  return m_extInputDataObjs;
39  }
Gaudi::Property< DataObjIDColl > m_extInputDataObjs
template<class BASE>
virtual const DataObjIDColl& DataHandleHolderBase< BASE >::extraOutputDeps ( ) const
inlineoverridevirtual

Definition at line 40 of file DataHandleHolderBase.h.

40  {
41  return m_extOutputDataObjs;
42  }
Gaudi::Property< DataObjIDColl > m_extOutputDataObjs
template<class BASE>
void DataHandleHolderBase< BASE >::initDataHandleHolder ( )
inlineprotected

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

Definition at line 66 of file DataHandleHolderBase.h.

66  {
67  for (auto h : m_handles) h->init();
68  }
std::unordered_set< Gaudi::DataHandle * > m_handles
template<class BASE>
std::vector<Gaudi::DataHandle*> DataHandleHolderBase< BASE >::inputHandles ( ) const
inlineoverride

Definition at line 30 of file DataHandleHolderBase.h.

30  {
31  return handles( m_handles, Gaudi::DataHandle::Reader );
32  }
std::unordered_set< Gaudi::DataHandle * > m_handles
template<class BASE>
std::vector<Gaudi::DataHandle*> DataHandleHolderBase< BASE >::outputHandles ( ) const
inlineoverride

Definition at line 33 of file DataHandleHolderBase.h.

33  {
34  return handles( m_handles, Gaudi::DataHandle::Writer );
35  }
std::unordered_set< Gaudi::DataHandle * > m_handles
template<class BASE>
void DataHandleHolderBase< BASE >::renounce ( Gaudi::DataHandle handle)
inlineoverride

Definition at line 54 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 
60  }
Define general base for Gaudi exception.
T erase(T...args)
virtual IDataHandleHolder * owner() const
Definition: DataHandle.h:44
std::unordered_set< Gaudi::DataHandle * > m_handles

Member Data Documentation

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

Definition at line 74 of file DataHandleHolderBase.h.

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

Definition at line 75 of file DataHandleHolderBase.h.

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

Definition at line 72 of file DataHandleHolderBase.h.


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