14#ifndef ATHCONTAINERS_JAGGEDVECVECTORFACTORY_H
15#define ATHCONTAINERS_JAGGEDVECVECTORFACTORY_H
31template <
class T,
class ALLOC = AuxAllocator_t<JaggedVecElt<T> > >
57 bool isLinked)
const override;
81 bool isLinked)
const override;
98 size_t n)
const override;
116 size_t n)
const override;
135 size_t n)
const override;
147 size_t n)
const override;
166 size_t n,
bool for_output)
const;
176template <
class T,
class ALLOC>
Factory object that creates vectors using AuxTypeVector.
char data[hepevt_bytes_allocation_ATLAS]
Implementation of IAuxTypeVector for JaggedVecElt types.
Factory object that creates vectors using AuxTypeVector.
typename Base::AuxTypeVector_t AuxTypeVector_t
JaggedVecVectorFactory< T, ALLOC > Base
typename Base::vector_value_type vector_value_type
Factory object that creates vectors using AuxTypeVector.
Manage lookup of vectors of auxiliary data.
Abstract interface for manipulating vectors of arbitrary types.
uint32_t index_type
Type for the indices.
Describe one element of a jagged vector.
Factory objects that creates vectors for packed links.
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.
typename Elt::Shift Shift
typename Elt::index_type index_type
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.
typename AuxTypeVector_t::vector_value_type vector_value_type
JaggedVecVector< T, ALLOC > AuxTypeVector_t
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.
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.
AuxTypeVectorFactoryImpl< Elt, ALLOC > Base
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.
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.
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.
typename Base::vector_value_type vector_value_type
JaggedVecVectorT< JaggedVecVectorHolder< T, ALLOC > > JaggedVecVector
size_t auxid_t
Identifier for a particular aux data item.