|
ATLAS Offline Software
|
Go to the documentation of this file.
15 #include "GaudiKernel/IAlgTool.h"
16 #include "GaudiKernel/IDataHandleHolder.h"
17 #include "GaudiKernel/Algorithm.h"
31 const IDataHandleHolder& holder)
33 for (
const Gaudi::DataHandle*
h : holder.inputHandles()) {
34 if (
h->fullKey() == contHandleKey) {
39 for (
const Gaudi::DataHandle*
h : holder.outputHandles()) {
40 if (
h->fullKey() == contHandleKey) {
58 const IDataHandleHolder*
findParent (
const IDataHandleHolder*
h)
61 const IAlgTool* astool =
dynamic_cast<const IAlgTool*
> (
h);
62 if (!astool)
return h;
63 const IInterface*
parent = astool->parent();
65 auto pdh =
dynamic_cast<const IDataHandleHolder*
> (
parent);
67 if (
dynamic_cast<const Gaudi::Algorithm*
> (
parent))
return pdh;
82 :
public IDataHandleVisitor
90 WDHScan (
const DataObjID& contHandleKey,
const IDataHandleHolder* owner)
97 virtual void visit (
const IDataHandleHolder*
h)
override;
155 const DataObjID& contHandleKey)
WDHScan(const DataObjID &contHandleKey, const IDataHandleHolder *owner)
Constructor.
const IDataHandleHolder * findParent(const IDataHandleHolder *h)
Find the top-level Gaudi component for H.
const DataObjID & m_contHandleKey
The key we're searching for.
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
const IDataHandleHolder * m_owner
Stop the search when we reach this component.
virtual void visit(const IDataHandleHolder *h) override
Called for each component in the tree.
bool handleInHolder(const DataObjID &contHandleKey, const IDataHandleHolder &holder)
Test to see if HOLDER has registered a handle key matching CONTHANDLEKEY, as either input or output.
bool m_sawOwner
Have we reached m_owner yet?
void scan(TDirectory *td=0, int depth=0)
Helper to scan a tree of components to search for another handle key potentially conflicting with the...
void registerWriteDecorHandleKey(IDataHandleHolder *owner, const DataObjID &contHandleKey)
Optionally register read dependency of a WriteDecorHandleKey.
bool m_found
Did we find the key?