|
ATLAS Offline Software
|
Go to the documentation of this file.
14 #ifndef ATHCONTAINERS_PACKEDLINKACCESSOR_H
15 #define ATHCONTAINERS_PACKEDLINKACCESSOR_H
75 template <
class CONT,
class ALLOC>
115 using Base::operator();
116 using Base::getPackedLinkArray;
117 using Base::getDataLinkArray;
118 using Base::getPackedLinkSpan;
119 using Base::getDataLinkSpan;
120 using Base::getDataSpan;
158 template <IsAuxElement ELT>
293 template <
class CONT,
class ALLOC,
class VALLOC>
295 :
public ConstAccessor<std::vector<PackedLink<CONT>, VALLOC>, ALLOC>
302 using VElt_t = std::vector<SG::PackedLink<CONT>, VALLOC>;
336 using Base::operator();
337 using Base::getPackedLinkVectorArray;
338 using Base::getDataLinkArray;
339 using Base::getPackedLinkSpan;
340 using Base::getPackedLinkVectorSpan;
341 using Base::getDataSpan;
342 using Base::getDataLinkSpan;
380 template <IsAuxElement ELT>
402 template <detail::ElementLinkRange<CONT> RANGE>
412 template <detail::ElementLinkRange<CONT> RANGE>
498 #endif // not ATHCONTAINERS_PACKEDLINKACCESSOR_H
typename AuxDataTraits< PackedLink< CONT >, ALLOC >::span PackedLink_span
Spans over the objects that are actually stored.
void container_pointer_type
Not supported.
Helpers for proxying ElementLink for PackedLink accessors.
SG::PackedLink< CONT > PLink_t
Flag that a class may have auxiliary data associated with it.
Helper class to provide type-safe access to aux data.
Extend PackedLinkConverter with a (non-const) conversion from PackedLink to a proxy object.
Base class for elements of a container that can have aux data.
PackedLink_span getPackedLinkSpan(AuxVectorData &container, size_t index) const
Get a span over the vector of PackedLinks for a given element.
Accessor(const std::string &name)
Constructor.
SG::auxid_t auxid() const
Return the aux id for this variable.
void const_container_pointer_type
Accessor(const std::string &name, const std::string &clsname)
Constructor.
typename AuxDataTraits< DataLink< CONT >, DLinkAlloc_t >::span DataLink_span
Accessor(const SG::auxid_t auxid)
Constructor taking an auxid directly.
Helper class to provide constant type-safe access to aux data.
bool isAvailableWritable(AuxElement &e) const
Test to see if this variable exists in the store and is writable.
Simplified version of the C++20 std::span.
void set(AuxElement &e, const Link_t &l) const
Set the variable for one element.
typename std::allocator_traits< ALLOC >::template rebind_alloc< DLink_t > DLinkAlloc_t
size_t auxid_t
Identifier for a particular aux data item.
Converter from a vector of PackedLink to a range of ElementLink proxies.
Accessor(const SG::auxid_t auxid)
Constructor taking an auxid directly.
void set(AuxVectorData &container, size_t index, const Link_t &x) const
Set the variable for one element.
Object reference supporting deferred reading from StoreGate.
Allow customizing how aux data types are treated.
Accessor(const std::string &name, const std::string &clsname)
Constructor.
DataLink_span getDataLinkSpan(AuxVectorData &container) const
Get a span over the array of DataLinks.
Proxy for a span of ElementLinks.
PackedLink_span getPackedLinkSpan(AuxElement &e) const
Get a span over the vector of PackedLinks for a given element.
Allow customizing how aux data types are treated.
reference_type operator()(ELT &e) const
Fetch the variable for one element, as a non-const reference.
PLink_t * getPackedLinkArray(AuxVectorData &container) const
Get a pointer to the start of the array of PackedLinks.
PackedLink_span getPackedLinkSpan(AuxVectorData &container) const
Get a span over the array of PackedLinks.
typename AuxDataTraits< PackedLink< CONT >, VALLOC >::span PackedLink_span
And a span over PackedLink objects.
typename AuxDataTraits< DataLink< CONT >, DLinkAlloc_t >::span DataLink_span
Manage lookup of vectors of auxiliary data.
typename AuxDataTraits< T, ALLOC >::span span
A span over elements in the container.
Helper class to provide type-safe access to aux data.
bool isAvailableWritable(AuxVectorData &e) const
Test to see if this variable exists in the store and is writable.
Basic definitions for auxiliary types.
Add at() methods to a range class.
void const_container_pointer_type
Compatibility helpers for using some pieces of C++20 concepts with older compilers.
std::vector< SG::PackedLink< CONT >, VALLOC > VElt_t
Handle mappings between names and auxid_t.
SG::PackedLink< CONT > PLink_t
typename AuxDataTraits< VElt_t, ALLOC >::span PackedLinkVector_span
Spans over the objects that are actually stored.
bool isAvailableWritable(AuxVectorData &c) const
Test to see if this variable exists in the store and is writable.
Helper class to provide constant type-safe access to aux data, specialized for PackedLink.
void set(AuxVectorData &container, size_t index, const RANGE &x) const
Set the variable for one element.
DLink_t * getDataLinkArray(AuxVectorData &container) const
Get a pointer to the start of the linked array of DataLinks.
PackedLinkVector_span getPackedLinkVectorSpan(AuxVectorData &container) const
Get a span over the vectors of PackedLinks.
void container_pointer_type
Not supported.
span getDataSpan(AuxVectorData &container) const
Get a span of ElementLink proxies.
Manage lookup of vectors of auxiliary data.
DataLink_span getDataLinkSpan(AuxVectorData &container) const
Get a span over the array of DataLinks.
VElt_t * getPackedLinkVectorArray(AuxVectorData &container) const
Get a pointer to the start of the array of vectors of PackedLinks.
typename AuxDataTraits< PackedLink< CONT >, PLINK_ALLOC >::span PackedLink_span
A span over PackedLink.
bool isAvailableWritable(AuxElement &e) const
Test to see if this variable exists in the store and is writable.
Define macros for attributes used to control the static checker.
DLink_t * getDataLinkArray(AuxVectorData &container) const
Get a pointer to the start of the linked array of DataLinks.
span getDataSpan(AuxVectorData &container) const
Get a span over spans of ElementLink proxies.
Accessor(const std::string &name)
Constructor.
typename std::allocator_traits< ALLOC >::template rebind_alloc< DLink_t > DLinkAlloc_t
void set(AuxElement &e, const RANGE &r) const
Set the variable for one element.