14#ifndef ATHCONTAINERS_PACKEDLINKVECTORFACTORY_H
15#define ATHCONTAINERS_PACKEDLINKVECTORFACTORY_H
20#include "AthLinks/DataLink.h"
32template <
class CONT,
class ALLOC = AuxAllocator_t<PackedLink<CONT> > >
55 bool isLinked)
const override;
79 bool isLinked)
const override;
96 size_t n)
const override;
114 size_t n)
const override;
133 size_t n)
const override;
142template <
class CONT,
class ALLOC>
188 bool isLinked)
const override;
212 bool isLinked)
const override;
229 size_t n)
const override;
247 size_t n)
const override;
266 size_t n)
const override;
275template <
class CONT,
class VALLOC,
class ALLOC>
Factory object that creates vectors using AuxTypeVector.
char data[hepevt_bytes_allocation_ATLAS]
Implementation of IAuxTypeVector for PackedLink types.
Allow customizing how aux data types are treated.
Factory object that creates vectors using AuxTypeVector.
typename Base::vector_value_type vector_value_type
typename Base::AuxTypeVector_t AuxTypeVector_t
PackedLinkVectorFactory< CONT, ALLOC > Base
typename Base::AuxTypeVector_t AuxTypeVector_t
typename Base::vector_value_type vector_value_type
PackedLinkVVectorFactory< CONT, VALLOC, std::vector< PackedLink< CONT >, VALLOC >, ALLOC > Base
Factory object that creates vectors using AuxTypeVector.
Manage lookup of vectors of auxiliary data.
Abstract interface for manipulating vectors of arbitrary types.
Factory object that creates vectors of vectors of packed links.
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.
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.
PackedLinkVVector< CONT, VALLOC, VELT, ALLOC > AuxTypeVector_t
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.
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 AuxTypeVector_t::vector_value_type vector_value_type
detail::PackedLinkVectorHelper< CONT > Helper
AuxTypeVectorFactoryImpl< VELT, ALLOC > Base
Factory object that creates vectors for packed links.
typename AuxTypeVector_t::vector_value_type vector_value_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.
detail::PackedLinkVectorHelper< CONT > Helper
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.
AuxTypeVectorFactoryImpl< PackedLink< CONT >, ALLOC > Base
PackedLinkVector< CONT, 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.
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.
typename Base::vector_value_type vector_value_type
Helper functions for managing PackedLink variables.
PackedLinkVectorT< PackedLinkVVectorHolder< CONT, VALLOC, VELT, ALLOC > > PackedLinkVVector
PackedLinkVectorT< PackedLinkVectorHolder< CONT, ALLOC > > PackedLinkVector
std::allocator< T > AuxAllocator_t
The default allocator type to use for auxiliary variables.
size_t auxid_t
Identifier for a particular aux data item.
A packed version of ElementLink.