![]() |
ATLAS Offline Software
|
Factory object that creates vectors of vectors of packed links. More...
#include <PackedLinkVectorFactory.h>
Public Types | |
| using | Base = AuxTypeVectorFactoryImpl< VELT, ALLOC > |
| using | AuxTypeVector_t = PackedLinkVVector< CONT, VALLOC, VELT, ALLOC > |
| using | Helper = detail::PackedLinkVectorHelper< CONT > |
| using | vector_value_type = typename AuxTypeVector_t::vector_value_type |
Public Member Functions | |
| virtual std::unique_ptr< IAuxTypeVector > | create (SG::auxid_t auxid, size_t size, size_t capacity, bool isLinked) const override |
| Create a vector object of this type. More... | |
| virtual std::unique_ptr< IAuxTypeVector > | createFromData (SG::auxid_t auxid, void *data, IAuxTypeVector *linkedVector, bool isPacked, bool ownFlag, bool isLinked) const override |
| Create a vector object of this type from a data blob. More... | |
| virtual void | copy (SG::auxid_t auxid, AuxVectorData &dst, size_t dst_index, const AuxVectorData &src, size_t src_index, size_t n) const override |
| Copy elements between vectors. More... | |
| virtual void | copyForOutput (SG::auxid_t auxid, AuxVectorData &dst, size_t dst_index, const AuxVectorData &src, size_t src_index, size_t n) const override |
| Copy elements between vectors, possibly applying thinning. More... | |
| virtual void | swap (SG::auxid_t auxid, AuxVectorData &a, size_t aindex, AuxVectorData &b, size_t bindex, size_t n) const override |
| Swap elements between vectors. More... | |
| void | copy (SG::auxid_t auxid, AuxVectorData &&dst, size_t dst_index, const AuxVectorData &src, size_t src_index, size_t n) const |
| Copy elements between vectors. More... | |
| virtual void | clear (SG::auxid_t auxid, AuxVectorData &dst, size_t dst_index, size_t n) const override |
| Clear a range of elements within a vector. More... | |
| virtual size_t | getEltSize () const override |
| Return the size of an element of this vector type. More... | |
| virtual size_t | getEltSize () const =0 |
| Return the size of an element of this vector type. More... | |
| virtual const std::type_info * | tiVec () const override |
Return the type_info of the vector. More... | |
| virtual const std::type_info * | tiVec () const =0 |
Return the type_info of the vector. More... | |
| virtual bool | isDynamic () const override |
True if the vectors created by this factory work by dynamic emulation (via TVirtualCollectionProxy or similar); false if the std::vector code is used directly. More... | |
| virtual bool | isDynamic () const =0 |
True if the vectors created by this factory work by dynamic emulation (via TVirtualCollectionProxy or similar); false if the std::vector code is used directly. More... | |
| virtual const std::type_info * | tiAlloc () const override |
Return the type_info of the vector allocator. More... | |
| virtual const std::type_info * | tiAlloc () const =0 |
Return the type_info of the vector allocator. More... | |
| virtual std::string | tiAllocName () const override |
| Return the (demangled) name of the vector allocator. More... | |
| virtual std::string | tiAllocName () const =0 |
| Return the (demangled) name of the vector allocator. More... | |
Private Member Functions | |
| vector_value_type * | copyImpl (SG::auxid_t auxid, AuxVectorData &dst, size_t dst_index, const AuxVectorData &src, size_t src_index, size_t n) const |
| Helper for copy; returns a pointer to the first destination object, or nullptr if the destination was cleared rather than copied. More... | |
Factory object that creates vectors of vectors of packed links.
This is an implementation of IAuxTypeVectorFactory that makes vectors using PackedLinkVVector.
Definition at line 166 of file PackedLinkVectorFactory.h.
| using SG::PackedLinkVVectorFactory< CONT, VALLOC, VELT, ALLOC >::AuxTypeVector_t = PackedLinkVVector<CONT, VALLOC, VELT, ALLOC> |
Definition at line 171 of file PackedLinkVectorFactory.h.
| using SG::PackedLinkVVectorFactory< CONT, VALLOC, VELT, ALLOC >::Base = AuxTypeVectorFactoryImpl<VELT, ALLOC> |
Definition at line 170 of file PackedLinkVectorFactory.h.
| using SG::PackedLinkVVectorFactory< CONT, VALLOC, VELT, ALLOC >::Helper = detail::PackedLinkVectorHelper<CONT> |
Definition at line 172 of file PackedLinkVectorFactory.h.
| using SG::PackedLinkVVectorFactory< CONT, VALLOC, VELT, ALLOC >::vector_value_type = typename AuxTypeVector_t::vector_value_type |
Definition at line 173 of file PackedLinkVectorFactory.h.
|
overridevirtualinherited |
Clear a range of elements within a vector.
| auxid | The aux data item being operated on. |
| dst | Container holding the element |
| dst_index | Index of the first element in the vector. |
| n | Number of elements to clear. |
Implements SG::IAuxTypeVectorFactory.
|
inlineinherited |
Copy elements between vectors.
| auxid | The aux data item being operated on. |
| dst | Container for the destination vector. Declared as a rvalue reference to allow passing a temporary here (such as from AuxVectorInterface). |
| dst_index | Index of the first destination element in the vector. |
| src | Container for the source vector. |
| src_index | Index of the first source element in the vector. |
| n | Number of elements to copy. |
dst and @ src can be either the same or different.
Definition at line 132 of file IAuxTypeVectorFactory.h.
|
overridevirtual |
Copy elements between vectors.
| auxid | The aux data item being operated on. |
| dst | Container for the destination vector. |
| dst_index | Index of the first destination element in the vector. |
| src | Container for the source vector. |
| src_index | Index of the first source element in the vector. |
| n | Number of elements to copy. |
dst and @ src can be either the same or different.
|
overridevirtual |
Copy elements between vectors, possibly applying thinning.
| auxid | The aux data item being operated on. |
| dst | Container for the destination vector. |
| dst_index | Index of the first destination element in the vector. |
| src | Container for the source vector. |
| src_index | Index of source element in the vector. |
| src_index | Index of the first source element in the vector. |
| n | Number of elements to copy. |
dst and @ src can be either the same or different.
|
privateinherited |
Helper for copy; returns a pointer to the first destination object, or nullptr if the destination was cleared rather than copied.
|
overridevirtual |
Create a vector object of this type.
| auxid | ID for the variable being created. |
| size | Initial size of the new vector. |
| capacity | Initial capacity of the new vector. |
| isLinked | True if this variable is linked from another one. Must be false. |
|
overridevirtual |
Create a vector object of this type from a data blob.
| auxid | ID for the variable being created. |
| data | The vector object. |
| linkedVector | The interface for another variable linked to this one. (We do not take ownership.) |
| isPacked | If true, data is a PackedContainer. |
| ownFlag | If true, the newly-created IAuxTypeVector object will take ownership of data. |
| isLinked | True if this variable is linked from another one. |
data should be a pointer to a std::vector<std::vector<SG::PackedLink<CONT>, VALLOC<...> > >, ALLOC<...> > object obtained with new. For this method, isPacked and isLinked must both be false.
|
pure virtualinherited |
Return the size of an element of this vector type.
Implemented in SG::RootAuxVectorFactory, SG::AuxTypeVectorFactoryImpl< T, ALLOC >, and xAOD::TAuxVectorFactory.
|
overridevirtualinherited |
Return the size of an element of this vector type.
|
pure virtualinherited |
True if the vectors created by this factory work by dynamic emulation (via TVirtualCollectionProxy or similar); false if the std::vector code is used directly.
Implemented in SG::RootAuxVectorFactory, SG::AuxTypeVectorFactoryImpl< T, ALLOC >, and xAOD::TAuxVectorFactory.
|
overridevirtualinherited |
True if the vectors created by this factory work by dynamic emulation (via TVirtualCollectionProxy or similar); false if the std::vector code is used directly.
|
overridevirtual |
Swap elements between vectors.
| auxid | The aux data item being operated on. |
| a | Container for the first vector. |
| aindex | Index of the first element in the first vector. |
| b | Container for the second vector. |
| bindex | Index of the first element in the second vector. |
| n | Number of elements to swap. |
a and @ b can be either the same or different. However, the ranges should not overlap.
|
pure virtualinherited |
Return the type_info of the vector allocator.
May be nullptr for a dynamic vector.
Implemented in SG::RootAuxVectorFactory, SG::AuxTypeVectorFactoryImpl< T, ALLOC >, and xAOD::TAuxVectorFactory.
|
overridevirtualinherited |
Return the type_info of the vector allocator.
|
pure virtualinherited |
Return the (demangled) name of the vector allocator.
Implemented in SG::RootAuxVectorFactory, SG::AuxTypeVectorFactoryImpl< T, ALLOC >, and xAOD::TAuxVectorFactory.
|
overridevirtualinherited |
Return the (demangled) name of the vector allocator.
|
pure virtualinherited |
Return the type_info of the vector.
Implemented in SG::RootAuxVectorFactory, SG::AuxTypeVectorFactoryImpl< T, ALLOC >, and xAOD::TAuxVectorFactory.
|
overridevirtualinherited |
Return the type_info of the vector.
1.8.18