|
ATLAS Offline Software
|
Go to the documentation of this file.
14 #ifndef ATHCONTAINERS_PACKEDLINKDECORATOR_H
15 #define ATHCONTAINERS_PACKEDLINKDECORATOR_H
28 #include "AthLinks/DataLink.h"
73 template <
class CONT,
class ALLOC>
161 template <IsConstAuxElement ELT>
188 template <IsConstAuxElement ELT>
309 template <IsConstAuxElement ELT>
330 const std::string& clsname,
383 template <
class CONT,
class ALLOC,
class VALLOC>
391 using VElt_t = std::vector<SG::PackedLink<CONT>, VALLOC>;
476 template <IsConstAuxElement ELT>
503 template <IsConstAuxElement ELT, detail::ElementLinkRange<CONT> RANGE>
504 void set (
const ELT&
e,
const RANGE&
x)
const;
513 template <detail::ElementLinkRange<CONT> RANGE>
555 template <IsConstAuxElement ELT>
611 template <IsConstAuxElement ELT>
676 template <IsConstAuxElement ELT>
697 const std::string& clsname,
709 #endif // not ATHCONTAINERS_PACKEDLINKDECORATOR_H
PLink_t * getPackedLinkDecorArray(const AuxVectorData &container) const
Get a pointer to the start of the array of PackedLinks, as a decoration.
Base class usable for accessors for variables with linked variables.
Helpers for proxying ElementLink for PackedLink accessors.
Helper: Convert a vector of PackedLink to a span over ElementLinks.
Helper: Convert a PackedLink to an ElementLink.
bool isAvailableWritable(const AuxVectorData &c) const
Test to see if this variable exists in the store and is writable.
PackedLink_span getPackedLinkDecorSpan(const AuxVectorData &container, size_t index) const
Get a span over the vector of PackedLinks for a given element, as a decoration.
DataLink_span getDataLinkDecorSpan(const AuxVectorData &container) const
Get a span over the array of DataLinks, as a decoration.
Flag that a class may have auxiliary data associated with it.
Extend PackedLinkConverter with a (non-const) conversion from PackedLink to a proxy object.
const VElt_t * getPackedLinkVectorArray(const AuxVectorData &container) const
Get a pointer to the start of the array of vectors of PackedLinks.
const_PackedLink_span getPackedLinkSpan(const AuxVectorData &container, size_t index) const
Get a span over the vector of PackedLinks for a given element.
const_span getDataSpan(const AuxVectorData &container) const
Get a span over spans of ElementLinks.
typename AuxDataTraits< T, ALLOC >::span span
A span over elements in the container.
const_DataLink_span getDataLinkSpan(const AuxVectorData &container) const
Get a span over the array of DataLinks.
void const_container_pointer_type
VElt_t * getPackedLinkVectorDecorArray(const AuxVectorData &container) const
Get a pointer to the start of the array of vectors of PackedLinks, as a decoration.
typename AuxDataTraits< DataLink< CONT >, DLinkAlloc_t >::span DataLink_span
Decorator(const std::string &name, const std::string &clsname)
Constructor.
Decorator(const std::string &name, const std::string &clsname, const SG::AuxVarFlags flags)
Constructor.
SG::auxid_t auxid() const
Return the aux id for this variable.
typename AuxDataTraits< PackedLink< CONT >, VALLOC >::span PackedLink_span
Simplified version of the C++20 std::span.
span getDecorationSpan(const AuxVectorData &container) const
Get a span of ElementLink proxies, as a decoration.
void container_pointer_type
Not supported.
typename AuxDataTraits< DataLink< CONT >, DLinkAlloc_t >::span DataLink_span
typename AuxDataTraits< PackedLink< CONT >, VALLOC >::const_span const_PackedLink_span
And spans over PackedLink objects.
size_t auxid_t
Identifier for a particular aux data item.
void set(const AuxVectorData &container, size_t index, const Link_t &x) const
Set the variable for one element.
Decorator(const std::string &name, const std::string &clsname, const SG::AuxVarFlags flags)
Constructor.
reference_type operator()(const ELT &e) const
Fetch the variable for one element, as a non-const reference.
Helper class to provide type-safe access to aux data.
Converter from a vector of PackedLink to a range of ElementLink proxies.
DataLink_span getDataLinkDecorSpan(const AuxVectorData &container) const
Get a span over the array of DataLinks, as a decoration.
Decorator(const SG::auxid_t auxid)
Constructor taking an auxid directly.
void set(const ELT &e, const RANGE &x) const
Set the variable for one element.
void set(const AuxVectorData &container, size_t index, const RANGE &r) const
Set the variable for one element.
void set(const ELT &e, const element_type &l) const
Set the variable for one element.
Object reference supporting deferred reading from StoreGate.
SG::PackedLink< CONT > PLink_t
Allow customizing how aux data types are treated.
bool isAvailableWritable(const AuxVectorData &e) const
Test to see if this variable exists in the store and is writable.
PackedLink_span getPackedLinkSpan(AuxVectorData &container, size_t index) const
Get a span over the vector of PackedLinks for a given element.
void container_pointer_type
Not supported.
Proxy for a span of ElementLinks.
Allow customizing how aux data types are treated.
typename AuxDataTraits< PackedLink< CONT >, ALLOC >::span PackedLink_span
Decorator(const std::string &name)
Constructor.
AuxVarFlags
Additional flags to qualify an auxiliary variable.
const_PackedLink_span getPackedLinkSpan(const ELT &e) const
Get a span over the vector of PackedLinks for a given element.
Manage lookup of vectors of auxiliary data.
const DLink_t * getDataLinkArray(const AuxVectorData &container) const
Get a pointer to the start of the linked array of DataLinks.
const_span getDataSpan(const AuxVectorData &container) const
Get a span of ElementLinks.
typename std::allocator_traits< ALLOC >::template rebind_alloc< DLink_t > DLinkAlloc_t
typename AuxDataTraits< VElt_t, ALLOC >::span PackedLinkVector_span
SG::PackedLink< CONT > PLink_t
typename std::allocator_traits< ALLOC >::template rebind_alloc< DLink_t > DLinkAlloc_t
PackedLink_span getPackedLinkDecorSpan(const AuxVectorData &container) const
Get a span over the array of PackedLinks, as a decoration.
bool isAvailableWritable(const ELT &e) const
Test to see if this variable exists in the store and is writable.
Helper class to provide type-safe access to aux data.
const_PackedLink_span getPackedLinkSpan(const AuxVectorData &container) const
Get a span over the array of PackedLinks.
PackedLink_span getPackedLinkDecorSpan(const ELT &e) const
Get a span over the vector of PackedLinks for a given element, as a decoration.
bool isAvailableWritable(const ELT &e) const
Test to see if this variable exists in the store and is writable.
typename AuxDataTraits< DataLink< CONT >, DLinkAlloc_t >::const_span const_DataLink_span
Basic definitions for auxiliary types.
PackedLinkVector_span getPackedLinkVectorDecorSpan(const AuxVectorData &container) const
Get a span over the vectors of PackedLinks, as a decoration.
Add at() methods to a range class.
Compatibility helpers for using some pieces of C++20 concepts with older compilers.
typename AuxDataTraits< T, ALLOC >::const_span const_span
Auxiliary variable type allowing to store ElementLinks as packed 32-bit values.
typename AuxDataTraits< PackedLink< CONT >, ALLOC >::const_span const_PackedLink_span
Spans over the objects that are actually stored.
void const_container_pointer_type
Decorator(const SG::auxid_t auxid)
Constructor taking an auxid directly.
Handle mappings between names and auxid_t.
span getDecorationSpan(const AuxVectorData &container) const
Get a span over spans of ElementLink proxies, as a decoration.
const_DataLink_span getDataLinkSpan(const AuxVectorData &container) const
Get a span over the array of DataLinks.
Helper class to provide constant type-safe access to aux data, specialized for PackedLink.
DLink_t * getDataLinkDecorArray(const AuxVectorData &container) const
Get a pointer to the start of the linked array of DataLinks, as a decoration.
Manage lookup of vectors of auxiliary data.
typename AuxDataTraits< PackedLink< CONT >, PLINK_ALLOC >::span PackedLink_span
A span over PackedLink.
Define macros for attributes used to control the static checker.
const DLink_t * getDataLinkArray(const AuxVectorData &container) const
Get a pointer to the start of the linked array of DataLinks.
Decorator(const std::string &name, const std::string &clsname)
Constructor.
const_PackedLinkVector_span getPackedLinkVectorSpan(const AuxVectorData &container) const
Get a span over the vectors of PackedLinks.
typename AuxDataTraits< DataLink< CONT >, DLinkAlloc_t >::const_span const_DataLink_span
const PLink_t * getPackedLinkArray(const AuxVectorData &container) const
Get a pointer to the start of the array of PackedLinks.
DLink_t * getDataLinkDecorArray(const AuxVectorData &container) const
Get a pointer to the start of the linked array of DataLinks, as a decoration.
std::vector< SG::PackedLink< CONT >, VALLOC > VElt_t
typename AuxDataTraits< VElt_t, ALLOC >::const_span const_PackedLinkVector_span
Spans over the objects that are actually stored.
Decorator(const std::string &name)
Constructor.