|
ATLAS Offline Software
|
Go to the documentation of this file.
14 #ifndef ATHCONTAINERSROOT_ROOTAUXVECTORFACTORY_H
15 #define ATHCONTAINERSROOT_ROOTAUXVECTORFACTORY_H
25 class TVirtualCollectionProxy;
31 class RootAuxVectorFactory;
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;
247 std::unique_ptr<TVirtualCollectionProxy>
m_proxy;
319 size_t offset()
const {
return m_offset; }
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;
489 enum {
NONE, ELEMENT_LINK, ELEMENT_LINK_VECTOR, ELEMENT_LINK_NONPOINTER} m_isEL;
496 #endif // not ATHCONTAINERSROOT_ROOTAUXVECTORFACTORY_H
virtual void * toPtr() override
Return a pointer to the start of the vector's data.
bool isLinked() const
Return true if this variable is linked from another one.
virtual void * toVector() override
Return a pointer to the overall object.
char data[hepevt_bytes_allocation_ATLAS]
virtual void reserve(size_t sz) override
Change the capacity of the vector.
bool m_ownFlag
Should be delete the vector object?
virtual std::unique_ptr< SG::IAuxTypeVector > clone() const override
Make a copy of this vector.
virtual bool shift(size_t pos, ptrdiff_t offs) override
Shift the elements of the vector.
RootUtils::Type m_type
Wrapper for the ROOT type of the element.
void * m_obj
Pointer to the overall object itself.
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.
bool const RAWDATA *ch2 const
Abstract interface for manipulating vectors of arbitrary types.
size_t m_offset
Offset of the STL vector within the overall object.
const RootAuxVectorFactory * m_factory
Pointer back to the factory class for this type.
size_t auxid_t
Identifier for a particular aux data item.
const RootUtils::Type & rootType() const
Return the ROOT type wrapper.
virtual size_t size() const override
Return the size of the vector.
size_t offset() const
Return the offset of the vector within the object.
Interface for factory objects that create vectors.
void storeDataSpan()
Update the stored span.
virtual std::unique_ptr< IAuxTypeVector > linkedVector()
Return IAuxTypeVector of a linked variable, if there is one.
TClass * m_objClass
The TClass for the overall object.
RootAuxVector & operator=(const RootAuxVector &)=delete
void * m_vec
Pointer to the vector object itself.
Minimal span-like object describing the range of an auxiliary variable.
virtual const std::type_info * objType() const override
Return the type of the complete object to be saved.
TClass * m_vecClass
The TClass for the std::vector.
auxid_t auxid() const
Return the auxid of the variable this vector represents.
Interface for non-const operations on an auxiliary store.
Dynamic implementation of IAuxVectorFactory, relying on root's vector proxy.
Dynamic implementation of IAuxTypeVector, relying on root vector proxy.
virtual AuxDataSpanBase getDataSpanImpl() const override final
Return a span object describing the current vector.
Interface for factory objects that create vectors.
void swap(ArenaSharedHeapSTLAllocator< T > &a, ArenaSharedHeapSTLAllocator< T > &b)
Abstract interface for manipulating vectors of arbitrary types.
TClass *vecClass ATLAS_NOT_CONST_THREAD_SAFE() const
Return the TClass for the std::vector.
std::unique_ptr< TVirtualCollectionProxy > m_proxy
The collection proxy for the vector.
RootAuxVector(const RootAuxVectorFactory *factory, SG::auxid_t auxid, size_t size, size_t capacity, bool isLinked)
Constructor.
Manage lookup of vectors of auxiliary data.
Define macros for attributes used to control the static checker.
TClass *objClass ATLAS_NOT_CONST_THREAD_SAFE() const
Return the TClass for the overall object.
virtual ~RootAuxVector() override
Destructor.
virtual bool resize(size_t sz) override
Change the size of the vector.