ATLAS Offline Software
|
Factory objects that creates vectors for packed links. More...
#include <JaggedVecVectorFactory.h>
Public Types | |
using | Elt = JaggedVecElt< T > |
using | Shift = typename Elt::Shift |
using | index_type = typename Elt::index_type |
using | Base = AuxTypeVectorFactoryImpl< Elt, ALLOC > |
using | AuxTypeVector_t = JaggedVecVector< T, ALLOC > |
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... | |
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... | |
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 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 | |
void | copyImpl (SG::auxid_t auxid, AuxVectorData &dst, size_t dst_index, const AuxVectorData &src, size_t src_index, size_t n, bool for_output) const |
Copy elements between vectors. More... | |
Factory objects that creates vectors for packed links.
This is an implementation of IAuxTypeVectorFactory
that makes vectors using JaggedVecVector
.
Definition at line 32 of file JaggedVecVectorFactory.h.
using SG::JaggedVecVectorFactory< T, ALLOC >::AuxTypeVector_t = JaggedVecVector<T, ALLOC> |
Definition at line 41 of file JaggedVecVectorFactory.h.
using SG::JaggedVecVectorFactory< T, ALLOC >::Base = AuxTypeVectorFactoryImpl<Elt, ALLOC> |
Definition at line 40 of file JaggedVecVectorFactory.h.
using SG::JaggedVecVectorFactory< T, ALLOC >::Elt = JaggedVecElt<T> |
Definition at line 36 of file JaggedVecVectorFactory.h.
using SG::JaggedVecVectorFactory< T, ALLOC >::index_type = typename Elt::index_type |
Definition at line 38 of file JaggedVecVectorFactory.h.
using SG::JaggedVecVectorFactory< T, ALLOC >::Shift = typename Elt::Shift |
Definition at line 37 of file JaggedVecVectorFactory.h.
using SG::JaggedVecVectorFactory< T, ALLOC >::vector_value_type = typename AuxTypeVector_t::vector_value_type |
Definition at line 42 of file JaggedVecVectorFactory.h.
|
overridevirtual |
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. |
Reimplemented from SG::AuxTypeVectorFactoryImpl< JaggedVecElt< T >, AuxAllocator_t< JaggedVecElt< T > > >.
|
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.
Reimplemented from SG::AuxTypeVectorFactoryImpl< JaggedVecElt< T >, AuxAllocator_t< JaggedVecElt< T > > >.
|
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.
Reimplemented from SG::AuxTypeVectorFactoryImpl< JaggedVecElt< T >, AuxAllocator_t< JaggedVecElt< T > > >.
|
private |
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. |
for_output | If true, apply thinning. |
dst
and @ src can be either the same or different.
|
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. |
Reimplemented from SG::AuxTypeVectorFactoryImpl< JaggedVecElt< T >, AuxAllocator_t< JaggedVecElt< T > > >.
|
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<SG::JaggedVecElt<T>, ALLOC<...> > object obtained with new. For this method, isPacked and isLinked must both be false.
Reimplemented from SG::AuxTypeVectorFactoryImpl< JaggedVecElt< T >, AuxAllocator_t< JaggedVecElt< T > > >.
|
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.
Reimplemented from SG::AuxTypeVectorFactoryImpl< JaggedVecElt< T >, AuxAllocator_t< JaggedVecElt< T > > >.
|
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.