ATLAS Offline Software
|
Classes | |
class | AuxDataConstSpan |
Auxiliary variable span wrapper (const). More... | |
class | AuxDataSpan |
Auxiliary variable span wrapper. More... | |
class | DataVectorAllocDummy |
class | ELProxyConverter |
Extend PackedLinkConverter with a (non-const) conversion from PackedLink to a proxy object. More... | |
class | ELProxyRefBase |
Base class for ELProxyT , with the converter held by reference. More... | |
class | ELProxyT |
Proxy for ElementLink. More... | |
class | ELProxyValBase |
Base class for ELProxyT , with the converter held by value. More... | |
class | ELSpanConverter |
Converter from a vector of PackedLink to a range of ElementLink proxies. More... | |
class | ELSpanProxy |
Proxy for a span of ElementLinks . More... | |
class | IteratorBase |
class | JaggedVecConstConverter |
Helper: Make a span from a jagged vector element. More... | |
class | JaggedVecConverter |
Helper: Make a span — either read-only or writable — from a jagged vector element. More... | |
class | JaggedVecProxyBase |
Base class for jagged vector proxies. More... | |
class | JaggedVecProxyRefBase |
Adapter for holding the proxy base information by reference. More... | |
class | JaggedVecProxyT |
Proxy for jagged vectors. More... | |
class | JaggedVecProxyValBase |
Adapter for holding the proxy base information by value. More... | |
class | LinkedVarAccessorBase |
Base class usable for accessors for variables with linked variables. More... | |
class | PackedLinkConstConverter |
Helper: Convert a PackedLink to an ElementLink. More... | |
class | PackedLinkConverter |
Helper: Convert a PackedLink to an ElementLink and vice-versa. More... | |
class | PackedLinkVectorConstConverter |
Helper: Convert a vector of PackedLink to a span over ElementLinks. More... | |
class | PackedLinkVectorHelper |
Helper functions for managing PackedLink variables. More... | |
class | PackedLinkVectorHelperBase |
Helper functions for managing PackedLink variables. More... | |
class | WDHScan |
Helper to scan a tree of components to search for another handle key potentially conflicting with the container key part of a WriteDecorHandleKey . More... | |
Typedefs | |
template<class CONT > | |
using | ELProxyInSpan = detail::ELProxyT< detail::ELProxyRefBase< CONT > > |
Proxy holding the converter by reference — meant to be used when we have a proxy as a member of a span. More... | |
template<class CONT > | |
using | ELProxyInSpanConverter = detail::ELProxyConverter< detail::ELProxyInSpan< CONT > > |
Converter producing a proxy — meant to be used when we have a proxy as a member of a span. More... | |
template<class CONT , class PLINK_ALLOC > | |
using | PackedLink_span = typename AuxDataTraits< PackedLink< CONT >, PLINK_ALLOC >::span |
A span over PackedLink . More... | |
template<class CONT , class PLINK_ALLOC > | |
using | ELSpanProxyBase = CxxUtils::transform_view_with_at< PackedLink_span< CONT, PLINK_ALLOC >, std::reference_wrapper< detail::ELProxyInSpanConverter< CONT > > > |
A range transforming a span over PackedLink to ElementLink proxies. More... | |
Functions | |
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. More... | |
const IDataHandleHolder * | findParent (const IDataHandleHolder *h) |
Find the top-level Gaudi component for H. More... | |
void | registerWriteDecorHandleKey (IDataHandleHolder *owner, const DataObjID &contHandleKey) |
Optionally register read dependency of a WriteDecorHandleKey . More... | |
Variables | |
template<class RANGE , class CONT > | |
concept | ElementLinkRange = CxxUtils::InputRangeOverT<RANGE, ElementLink<CONT> > |
Concept for a range of things that can convert to ElementLink<CONT> . More... | |
using SG::detail::ELProxyInSpan = typedef detail::ELProxyT<detail::ELProxyRefBase<CONT> > |
using SG::detail::ELProxyInSpanConverter = typedef detail::ELProxyConverter<detail::ELProxyInSpan<CONT> > |
using SG::detail::ELSpanProxyBase = typedef CxxUtils::transform_view_with_at<PackedLink_span<CONT, PLINK_ALLOC>, std::reference_wrapper<detail::ELProxyInSpanConverter<CONT> > > |
A range transforming a span over PackedLink
to ElementLink
proxies.
using SG::detail::PackedLink_span = typedef typename AuxDataTraits<PackedLink<CONT>, PLINK_ALLOC>::span |
Find the top-level Gaudi component for H.
H | The component at which to start the search. |
We're given a Gaudi component H as an IDataHandleHolder
. If this is an algorithm, return it. Otherwise, search up the list of parents to find either the owning algorithm or a top-level public tool or service.
Definition at line 58 of file WriteDecorHandleKey.cxx.
bool SG::detail::handleInHolder | ( | const DataObjID & | contHandleKey, |
const IDataHandleHolder & | holder | ||
) |
Test to see if HOLDER has registered a handle key matching CONTHANDLEKEY, as either input or output.
contHandleKey | The handle key to test. |
holder | The component to search. |
Definition at line 30 of file WriteDecorHandleKey.cxx.
void SG::detail::registerWriteDecorHandleKey | ( | IDataHandleHolder * | owner, |
const DataObjID & | contHandleKey | ||
) |
Optionally register read dependency of a WriteDecorHandleKey
.
A WriteDecorHandle
logically has a read dependency on the container itself. However, just declaring this as a usual ReadHandleKey
will cause problems if used in an algorithm that also creates the container: we'll get complaints from the Algorithm
base class about circular dependencies.
To deal with this, we don't declare the container ReadHandleKey
in declareProperty
. Instead, we wait until initialize
and declare the dependency with addDependency
only if it is not already on a handle list.
This issue also comes up across multiple tools in a single algorithm. For example, if an algorithm that has one tool that creates an container and another tool with a WriteDecorHandleKey, we can get a warning about a circular dependency. To suppress this for the common case, we also search the component tree under the algorithm and avoid adding the ReadHandleKey
if there's a matching component in the tree before the one owning the WriteDecorHandleKey. (We only do it for components earlier in the tree walk to make it less likely that we'll suppress the warning for a genuine use-before-write misconfiguration.)
Definition at line 154 of file WriteDecorHandleKey.cxx.
concept SG::detail::ElementLinkRange = CxxUtils::InputRangeOverT<RANGE, ElementLink<CONT> > |
Concept for a range of things that can convert to ElementLink<CONT>
.
Definition at line 35 of file PackedLinkVectorHelper.h.