![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
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;
219 virtual const std::type_info*
objType()
const override;
230 std::unique_ptr<TVirtualCollectionProxy>
m_proxy;
365 size_t n)
const override;
383 size_t n)
const override;
401 size_t n)
const override;
413 size_t n)
const override;
425 virtual const std::type_info*
tiVec()
const override;
441 virtual const std::type_info*
tiAlloc()
const override;
479 #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 isDynamic() const override
True if the vectors created by this factory work by dynamic emulation (via TVirtualCollectionProxy or...
enum SG::RootAuxVectorFactory::@28 m_isEL
Flag to tell whether we need to do thinning.
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 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.
virtual std::string tiAllocName() const override
Return the (demangled) name of the vector allocator.
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.
RootAuxVectorFactory(TClass *objClass)
Constructor.
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.
virtual bool insertMove(size_t pos, void *beg, void *end, SG::IAuxStore &srcStore) override
Insert elements into the vector via move semantics.
size_t offset() const
Return the offset of the vector within the object.
Interface for factory objects that create vectors.
virtual const std::type_info * tiVec() const override
Return the type_info of the overall object.
TClass * m_objClass
The TClass for the overall object.
RootAuxVector & operator=(const RootAuxVector &)=delete
void * m_vec
Pointer to the vector object itself.
virtual const std::type_info * tiAlloc() const override
Return the type_info of the vector allocator.
virtual size_t getEltSize() const override
Return the size of an element of this vector type.
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.
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.
Interface for non-const operations on an auxiliary store.
virtual std::unique_ptr< SG::IAuxTypeVector > create(SG::auxid_t auxid, size_t size, size_t capacity, bool isLinked) const override
Create a vector object of this type.
Dynamic implementation of IAuxVectorFactory, relying on root's vector proxy.
Dynamic implementation of IAuxTypeVector, relying on root vector proxy.
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.
Interface for factory objects that create vectors.
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.
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.
virtual ~RootAuxVectorFactory() override
Destructor.
@ ELEMENT_LINK_NONPOINTER
virtual std::unique_ptr< SG::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.
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.
char * 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...
virtual bool resize(size_t sz) override
Change the size of the vector.