The Gaudi Framework  v29r0 (ff2e7097)
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
 
const DataObjIDCollinputDataObjs () const override
 
const DataObjIDColloutputDataObjs () 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::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...
 

Protected Attributes

DataObjIDColl m_inputDataObjs
 
DataObjIDColl m_outputDataObjs
 

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 >::addDependency ( const DataObjID id,
const Gaudi::DataHandle::Mode mode 
)
inlineoverride
template<class BASE>
void DataHandleHolderBase< BASE >::declare ( Gaudi::DataHandle handle)
inlineoverride

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  }
Define general base for Gaudi exception.
virtual void setOwner(IDataHandleHolder *o)
Definition: DataHandle.h:41
T insert(T...args)
virtual IDataHandleHolder * owner() const
Definition: DataHandle.h:42
std::unordered_set< Gaudi::DataHandle * > m_handles
template<class BASE>
virtual const DataObjIDColl& DataHandleHolderBase< BASE >::extraInputDeps ( ) const
inlineoverridevirtual

Definition at line 39 of file DataHandleHolderBase.h.

39 { return m_extInputDataObjs; }
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 { return m_extOutputDataObjs; }
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 74 of file DataHandleHolderBase.h.

75  {
76  for ( auto h : m_handles ) h->init();
77  }
std::unordered_set< Gaudi::DataHandle * > m_handles
template<class BASE>
const DataObjIDColl& DataHandleHolderBase< BASE >::inputDataObjs ( ) const
inlineoverride

Definition at line 61 of file DataHandleHolderBase.h.

61 { return m_inputDataObjs; }
template<class BASE>
std::vector<Gaudi::DataHandle*> DataHandleHolderBase< BASE >::inputHandles ( ) const
inlineoverride

Definition at line 30 of file DataHandleHolderBase.h.

31  {
32  return handles( m_handles, Gaudi::DataHandle::Reader );
33  }
std::unordered_set< Gaudi::DataHandle * > m_handles
template<class BASE>
const DataObjIDColl& DataHandleHolderBase< BASE >::outputDataObjs ( ) const
inlineoverride

Definition at line 62 of file DataHandleHolderBase.h.

62 { return m_outputDataObjs; }
DataObjIDColl m_outputDataObjs
template<class BASE>
std::vector<Gaudi::DataHandle*> DataHandleHolderBase< BASE >::outputHandles ( ) const
inlineoverride

Definition at line 34 of file DataHandleHolderBase.h.

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

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  }
Define general base for Gaudi exception.
T erase(T...args)
virtual IDataHandleHolder * owner() const
Definition: DataHandle.h:42
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 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: