13#ifndef ATHCONTAINERS_JAGGEDVECVECTOR_H
14#define ATHCONTAINERS_JAGGEDVECVECTOR_H
38template <
class T,
class ALLOC = AuxAllocator_t<JaggedVecElt<T> > >
41 typename AuxDataTraits<JaggedVecElt<T>, ALLOC>::vector_type>
106 virtual bool shift (
size_t pos, ptrdiff_t offs)
override;
132 void* src,
size_t src_pos,
size_t src_n,
159template <
class HOLDER>
178 size_t size,
size_t capacity,
179 std::unique_ptr<IAuxTypeVector> linkedVec);
202 virtual std::unique_ptr<IAuxTypeVector>
clone()
const override;
223template <
class T,
class ALLOC = AuxAllocator_t<JaggedVecElt<T> > >
Implementation of IAuxTypeVector for specific types.
Manage lookup of vectors of auxiliary data.
Definition of JaggedVecElt.
std::vector< T, allocator_type > vector_type
Container type used to store this variable.
CONT vector_type
Type of the STL vector used for storage.
virtual size_t size() const override
AuxTypeVectorHolder(auxid_t auxid, vector_type *vecPtr, bool ownFlag, bool isLinked)
Constructor.
AuxDataTraits< T >::element_type element_type
Type that the user sees.
Interface for non-const operations on an auxiliary store.
Abstract interface for manipulating vectors of arbitrary types.
auxid_t auxid() const
Return the auxid of the variable this vector represents.
uint32_t index_type
Type for the indices.
Describe one element of a jagged vector.
typename Elt::index_type index_type
virtual bool resize(size_t sz) override
Change the size of the vector.
JaggedVecVectorHolder(auxid_t auxid, vector_type *vecPtr, IAuxTypeVector *linkedVec, bool ownFlag)
Constructor.
virtual bool shift(size_t pos, ptrdiff_t offs) override
Shift the elements of the vector.
typename Base::element_type element_type
typename Elt::Shift Shift
typename Base::vector_type vector_type
virtual bool insertMove(size_t pos, void *src, size_t src_pos, size_t src_n, IAuxStore &srcStore) override
Insert elements into the vector via move semantics.
IAuxTypeVector * m_linkedVec
Interface for the linked vector of DataLinks.
AuxTypeVectorHolder< Elt, typename AuxDataTraits< Elt, ALLOC >::vector_type > Base
Implementation of IAuxTypeVector holding a vector of JaggedVec.
JaggedVecVectorT(const JaggedVecVectorT &other)
std::unique_ptr< IAuxTypeVector > m_linkedVecHolder
JaggedVecVectorT(auxid_t auxid, size_t size, size_t capacity, std::unique_ptr< IAuxTypeVector > linkedVec)
Constructor.
JaggedVecVectorT & operator=(const JaggedVecVectorT &other)=delete
No assignment.
typename Base::element_type element_type
typename Base::vector_value_type vector_value_type
virtual std::unique_ptr< IAuxTypeVector > linkedVector() override
typename Base::vector_type vector_type
JaggedVecVectorT(JaggedVecVectorT &&other)
virtual std::unique_ptr< IAuxTypeVector > clone() const override
JaggedVecVectorT< JaggedVecVectorHolder< T, ALLOC > > JaggedVecVector
size_t auxid_t
Identifier for a particular aux data item.