|
ATLAS Offline Software
|
Go to the documentation of this file.
13 #ifndef ATHCONTAINERS_JAGGEDVECVECTOR_H
14 #define ATHCONTAINERS_JAGGEDVECVECTOR_H
38 template <
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,
159 template <
class HOLDER>
178 size_t size,
size_t capacity,
179 std::unique_ptr<IAuxTypeVector> linkedVec);
202 virtual std::unique_ptr<IAuxTypeVector>
clone()
const override;
223 template <
class T,
class ALLOC = AuxAllocator_t<JaggedVecElt<T> > >
233 #endif // not ATHCONTAINERS_JAGGEDVECVECTOR_H
AuxDataTraits< JaggedVecElt< T >, VEC::allocator_type >::vector_type vector_type
Type of the STL vector used for storage.
typename Base::element_type element_type
AuxDataTraits< JaggedVecElt< T > >::element_type element_type
Type that the user sees.
IAuxTypeVector * m_linkedVec
Interface for the linked vector of DataLinks.
typename Base::vector_value_type vector_value_type
JaggedVecVectorT(auxid_t auxid, size_t size, size_t capacity, std::unique_ptr< IAuxTypeVector > linkedVec)
Constructor.
std::vector< T, allocator_type > vector_type
Container type used to store this variable.
Implementation of IAuxTypeVector for JaggedVec types.
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.
uint32_t index_type
Type for the indices.
JaggedVecVectorT(JaggedVecVectorT &&other)
Move constructor.
size_t auxid_t
Identifier for a particular aux data item.
virtual std::unique_ptr< IAuxTypeVector > clone() const override
Make a copy of this vector.
vector_type m_vec
The contained vector.
virtual std::unique_ptr< IAuxTypeVector > linkedVector() override
Return ownership of the linked vector.
typename Elt::Shift Shift
JaggedVecVectorT & operator=(const JaggedVecVectorT &other)=delete
No assignment.
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.
Manage lookup of vectors of auxiliary data.
Implementation of IAuxTypeVector for specific types.
JaggedVecVectorT(const JaggedVecVectorT &other)
Copy constructor.
auxid_t auxid() const
Return the auxid of the variable this vector represents.
typename Base::vector_type vector_type
Interface for non-const operations on an auxiliary store.
Definition of JaggedVecElt.
Abstract interface for manipulating vectors of arbitrary types.
Describe one element of a jagged vector.
virtual bool shift(size_t pos, ptrdiff_t offs) override
Shift the elements of the vector.
typename Elt::index_type index_type
Implementation of IAuxTypeVector holding a vector of JaggedVec.
Implementation of IAuxTypeVector for specific types.
std::unique_ptr< IAuxTypeVector > m_linkedVecHolder
Holding ownership of the linked vector.