|
ATLAS Offline Software
|
Go to the documentation of this file.
20 #ifndef ATHCONTAINERS_AUXTYPEVECTORFACTORY_H
21 #define ATHCONTAINERS_AUXTYPEVECTORFACTORY_H
37 template <
class T,
class ALLOC = AuxAllocator_t<T> >
59 bool isLinked)
const override;
87 bool isLinked)
const override;
104 size_t n)
const override;
122 size_t n)
const override;
141 size_t n)
const override;
153 size_t n)
const override;
165 virtual const std::type_info*
tiVec()
const override;
179 virtual const std::type_info*
tiAlloc()
const override;
197 std::unique_ptr<IAuxTypeVector>
200 std::true_type)
const;
202 std::unique_ptr<IAuxTypeVector>
205 std::false_type)
const;
216 template <
class T,
class ALLOC = AuxAllocator_t<T> >
233 #endif // not ATHCONTAINERS_AUXTYPEVECTORFACTORY_H
char data[hepevt_bytes_allocation_ATLAS]
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.
Factory object that creates vectors using AuxTypeVector.
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.
virtual const std::type_info * tiAlloc() const override
Return the type_info of the vector allocator.
vector_value_type * copyImpl(SG::auxid_t auxid, AuxVectorData &dst, size_t dst_index, const AuxVectorData &src, size_t src_index, size_t n) const
Helper for copy; returns a pointer to the first destination object, or nullptr if the destination was...
std::unique_ptr< IAuxTypeVector > createFromData(auxid_t auxid, void *data, bool isPacked, bool ownFlag, bool isLinked, std::true_type) const
Helpers for creating vector from a data blob,.
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 AuxTypeVector_t::vector_value_type vector_value_type
size_t auxid_t
Identifier for a particular aux data item.
Implementation of IAuxTypeVector holding a vector instance.
AuxTypeVector< T, ALLOC > AuxTypeVector_t
Interface for factory objects that create vectors.
Allow customizing how aux data types are treated.
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.
Factory object that creates vectors using AuxTypeVector.
Manage lookup of vectors of auxiliary data.
Convert a type_info to a normalized string representation (matching the names used in the root dictio...
Implementation of IAuxTypeVector for specific types.
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 size_t getEltSize() const override
Return the size of an element of this vector type.
typename Base::vector_value_type vector_value_type
virtual const std::type_info * tiVec() const override
Return the type_info of the vector.
std::unique_ptr< IAuxTypeVector > createFromData(auxid_t auxid, void *data, bool isPacked, bool ownFlag, bool isLinked, std::false_type) const
Interface for factory objects that create vectors.
Abstract interface for manipulating vectors of arbitrary types.
virtual std::string tiAllocName() const override
Return the (demangled) name of the vector allocator.
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.
Manage lookup of vectors of auxiliary data.
virtual bool isDynamic() const override
True if the vectors created by this factory work by dynamic emulation (via TVirtualCollectionProxy or...