14#ifndef ATHCONTAINERSROOT_ROOTAUXVECTORFACTORY_H
15#define ATHCONTAINERSROOT_ROOTAUXVECTORFACTORY_H
25class TVirtualCollectionProxy;
110 virtual std::unique_ptr<SG::IAuxTypeVector>
clone()
const override;
116 virtual void*
toPtr()
override;
122 virtual const void*
toPtr()
const override;
135 virtual size_t size()
const override;
144 virtual bool resize (
size_t sz)
override;
151 virtual void reserve (
size_t sz)
override;
180 virtual bool shift (
size_t pos, ptrdiff_t offs)
override;
206 void* src,
size_t src_pos,
size_t src_n,
221 virtual const std::type_info*
objType()
const override;
359 virtual std::unique_ptr<SG::IAuxTypeVector> createFromData (
SG::auxid_t auxid,
382 size_t n)
const override;
400 size_t n)
const override;
418 size_t n)
const override;
430 size_t n)
const override;
436 virtual size_t getEltSize()
const override;
442 virtual const std::type_info* tiVec()
const override;
450 virtual bool isDynamic()
const override;
458 virtual const std::type_info* tiAlloc()
const override;
464 virtual std::string tiAllocName()
const override;
char data[hepevt_bytes_allocation_ATLAS]
Interface for factory objects that create vectors.
Abstract interface for manipulating vectors of arbitrary types.
Define macros for attributes used to control the static checker.
Manage lookup of vectors of auxiliary data.
Interface for non-const operations on an auxiliary store.
Interface for factory objects that create vectors.
Abstract interface for manipulating vectors of arbitrary types.
bool isLinked() const
Return true if this variable is linked from another one.
auxid_t auxid() const
Return the auxid of the variable this vector represents.
virtual std::unique_ptr< IAuxTypeVector > linkedVector()
Return IAuxTypeVector of a linked variable, if there is one.
Dynamic implementation of IAuxVectorFactory, relying on root's vector proxy.
RootAuxVectorFactory(TClass *objClass)
Constructor.
size_t offset() const
Return the offset of the vector within the object.
TClass *objClass ATLAS_NOT_CONST_THREAD_SAFE() const
Return the TClass for the overall object.
RootUtils::Type m_type
Wrapper for the ROOT type of the element.
size_t m_offset
Offset of the STL vector within the overall object.
TClass * m_objClass
The TClass for the overall object.
TClass * m_vecClass
The TClass for the std::vector.
@ ELEMENT_LINK_NONPOINTER
const RootUtils::Type & rootType() const
Return the ROOT type wrapper.
TClass *vecClass ATLAS_NOT_CONST_THREAD_SAFE() const
Return the TClass for the std::vector.
const RootAuxVectorFactory * m_factory
Pointer back to the factory class for this type.
void * m_vec
Pointer to the vector object itself.
virtual void * toPtr() override
Return a pointer to the start of the vector's data.
std::unique_ptr< TVirtualCollectionProxy > m_proxy
The collection proxy for the vector.
bool m_ownFlag
Should be delete the vector object?
RootAuxVector & operator=(const RootAuxVector &)=delete
RootAuxVector(const RootAuxVectorFactory *factory, SG::auxid_t auxid, size_t size, size_t capacity, bool isLinked)
Constructor.
virtual AuxDataSpanBase getDataSpanImpl() const override final
Return a span object describing the current vector.
virtual std::unique_ptr< SG::IAuxTypeVector > clone() const override
Make a copy of this vector.
virtual void * toVector() override
Return a pointer to the overall object.
virtual bool insertMove(size_t pos, void *src, size_t src_pos, size_t src_n, SG::IAuxStore &srcStore) override
Insert elements into the vector via move semantics.
void storeDataSpan()
Update the stored span.
virtual ~RootAuxVector() override
Destructor.
void * m_obj
Pointer to the overall object itself.
virtual bool resize(size_t sz) override
Change the size of the vector.
virtual bool shift(size_t pos, ptrdiff_t offs) override
Shift the elements of the vector.
virtual const std::type_info * objType() const override
Return the type of the complete object to be saved.
virtual void reserve(size_t sz) override
Change the capacity of the vector.
virtual size_t size() const override
Return the size of the vector.
void swap(ArenaSharedHeapSTLAllocator< T > &a, ArenaSharedHeapSTLAllocator< T > &b)
size_t auxid_t
Identifier for a particular aux data item.
Minimal span-like object describing the range of an auxiliary variable.