Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
13 #ifndef ATHCONTAINERS_PACKEDLINKVECTOR_H
14 #define ATHCONTAINERS_PACKEDLINKVECTOR_H
21 #include "AthLinks/ElementLink.h"
22 #include "AthLinks/DataLink.h"
39 template <
class CONT,
class ALLOC = AuxAllocator_t<PackedLink<CONT> > >
42 typename AuxDataTraits<PackedLink<CONT>, ALLOC>::vector_type>
95 void*
src,
size_t src_pos,
size_t src_n,
120 template <
class CONT,
121 class VALLOC = AuxAllocator_t<PackedLink<CONT> >,
122 class VELT =
typename AuxDataTraits<PackedLink<CONT>, VALLOC >::vector_type,
123 class ALLOC = AuxAllocator_t<VELT> >
126 typename AuxDataTraits<VELT, ALLOC>::vector_type>
179 void*
src,
size_t src_pos,
size_t src_n,
206 template <
class HOLDER>
225 size_t size,
size_t capacity,
226 std::unique_ptr<IAuxTypeVector> linkedVec);
249 virtual std::unique_ptr<IAuxTypeVector>
clone()
const override;
270 template <
class CONT,
class ALLOC = AuxAllocator_t<PackedLink<CONT> > >
273 template <
class CONT,
286 #endif // not ATHCONTAINERS_PACKEDLINKVECTOR_H
IAuxTypeVector * m_linkedVec
Interface for the linked vector of DataLinks.
AuxDataTraits< PackedLink< TARG >, VEC::allocator_type >::vector_type vector_type
Type of the STL vector used for storage.
std::allocator< T > AuxAllocator_t
The default allocator type to use for auxiliary variables.
PackedLinkVectorHolder(auxid_t auxid, vector_type *vecPtr, IAuxTypeVector *linkedVec, bool ownFlag)
Constructor.
AuxDataTraits< PackedLink< TARG > >::element_type element_type
Type that the user sees.
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.
PackedLinkVectorT(auxid_t auxid, size_t size, size_t capacity, std::unique_ptr< IAuxTypeVector > linkedVec)
Constructor.
Helper functions for managing PackedLink variables.
typename Base::vector_value_type vector_value_type
std::vector< T, allocator_type > vector_type
Container type used to store this variable.
PackedLinkVVectorHolder(auxid_t auxid, vector_type *vecPtr, IAuxTypeVector *linkedVec, bool ownFlag)
Constructor.
Helper functions for managing PackedLink variables.
PackedLinkVectorT(const PackedLinkVectorT &other)
Copy constructor.
size_t auxid_t
Identifier for a particular aux data item.
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.
Allow customizing how aux data types are treated.
Definition of PackedLink type.
typename Base::element_type element_type
vector_type m_vec
The contained vector.
std::unique_ptr< IAuxTypeVector > m_linkedVecHolder
Holding ownership of the linked vector.
Manage lookup of vectors of auxiliary data.
Implementation of IAuxTypeVector for specific types.
typename Base::vector_type vector_type
auxid_t auxid() const
Return the auxid of the variable this vector represents.
Implementation of IAuxTypeVector holding a vector of PackedLink.
Interface for non-const operations on an auxiliary store.
Abstract interface for manipulating vectors of arbitrary types.
PackedLinkVectorT & operator=(const PackedLinkVectorT &other)=delete
No assignment.
PackedLinkVectorT(PackedLinkVectorT &&other)
Move constructor.
virtual std::unique_ptr< IAuxTypeVector > clone() const override
Make a copy of this vector.
Implementation of IAuxTypeVector for a vector of PackedLink.
Implementation of IAuxTypeVector for PackedLink types.
Implementation of IAuxTypeVector for specific types.
virtual std::unique_ptr< IAuxTypeVector > linkedVector() override
Return ownership of the linked vector.