ATLAS Offline Software
|
Call start() on all ReadCondHandle's of an algorithm. More...
#include <AthAlgStartVisitor.h>
Public Member Functions | |
virtual void | visit (const IDataHandleHolder *holder) override |
Visit a component and start() any read conditions handles. More... | |
AthAlgStartVisitor ()=default | |
AthAlgStartVisitor (INamedInterface *) | |
Figure out where we're called from. More... | |
Private Attributes | |
std::unordered_set< const IDataHandleHolder * > | m_seen |
figure out where we're called from More... | |
bool | m_recursive {true} |
bool | m_ignore {false} |
process recursively (for Algs) More... | |
Call start() on all ReadCondHandle's of an algorithm.
For efficient conditions handling, a CondHandleKey needs to cache a pointer to the conditions container. initialize() is too early for this as conditions containers made by CondInputLoader are not created until start(). So during the start() of an algorithm, we visit all read conditions handle keys and call start() on them, to give them the opportunity to look up the conditions object.
We use IDataHandleVisitor
to do this recursively for all owned tools as well.
FIXME: this should probably be moved to GaudiKernel, and have all AlgTools started by their parent Algorithms
Definition at line 39 of file AthAlgStartVisitor.h.
|
default |
AthAlgStartVisitor::AthAlgStartVisitor | ( | INamedInterface * | n | ) |
Figure out where we're called from.
Only want to process holders recursively if caller is a real Algorithm. If it's an AlgTool, don't recurse. If it's a Sequence, don't do anything.
n | back pointer to parent |
Definition at line 26 of file AthAlgStartVisitor.cxx.
|
overridevirtual |
Visit a component and start() any read conditions handles.
holder | The component to visit. |
Definition at line 42 of file AthAlgStartVisitor.cxx.
|
private |
process recursively (for Algs)
Definition at line 56 of file AthAlgStartVisitor.h.
|
private |
Definition at line 55 of file AthAlgStartVisitor.h.
|
private |
figure out where we're called from
Keep track of components we've already processed.
Definition at line 54 of file AthAlgStartVisitor.h.