Go to the documentation of this file.
11 #ifndef GAUDIKERNEL_DATAHANDLEHOLDERBASE
12 #define GAUDIKERNEL_DATAHANDLEHOLDERBASE 1
21 #include <unordered_set>
24 template <
typename Container>
51 if ( handle.
owner() !=
this ) {
55 m_handles.insert( &handle );
59 if ( handle.
owner() !=
this ) {
62 m_handles.erase( &handle );
66 bool renounced =
false;
68 for (
auto i = m_handles.begin(), last = m_handles.end(); i != last; ) {
70 i = m_handles.erase( i );
76 if (
auto elm = m_inputDataObjs.find(
id ); elm != m_inputDataObjs.end() ) {
77 m_inputDataObjs.erase( elm );
95 for (
auto h : m_handles )
h->init();
107 #endif // !GAUDIKERNEL_DATAHANDLEHOLDERBASE
bool renounceInput(const DataObjID &id) override
virtual void setOwner(IDataHandleHolder *o)
T back_inserter(T... args)
void addDependency(const DataObjID &id, const Gaudi::DataHandle::Mode &mode) override
std::vector< Gaudi::DataHandle * > outputHandles() const override
DataObjIDColl m_outputDataObjs
void declare(Gaudi::DataHandle &handle) override
void initDataHandleHolder()
initializes all handles - called by the sysInitialize method of any descendant of this
virtual IDataHandleHolder * owner() const
virtual const DataObjIDColl & extraOutputDeps() const override
virtual const DataObjIDColl & extraInputDeps() const override
void renounce(Gaudi::DataHandle &handle) override
Base class used to extend a class implementing other interfaces.
std::vector< Gaudi::DataHandle * > inputHandles() const override
const DataObjIDColl & outputDataObjs() const override
virtual Mode mode() const
const DataObjIDColl & inputDataObjs() const override
constexpr static const auto FAILURE
std::unordered_set< Gaudi::DataHandle * > m_handles
Implementation of property with value of concrete type.