ATLAS Offline Software
|
Auxiliary vector factory based on a ROOT dictionary. More...
#include <TAuxVectorFactory.h>
Public Member Functions | |
TAuxVectorFactory (::TClass *cl) | |
Constructor, setting up the object based on a dictionary. More... | |
virtual | ~TAuxVectorFactory () |
Destructor. More... | |
TAuxVectorFactory (const TAuxVectorFactory &)=delete | |
TAuxVectorFactory & | operator= (const TAuxVectorFactory &)=delete |
void | copy (SG::auxid_t auxid, AuxVectorData &&dst, size_t dst_index, const AuxVectorData &src, size_t src_index, size_t n) const |
Copy elements between vectors. More... | |
Functions implementing the SG::IAuxTypeVectorFactory interface | |
virtual std::unique_ptr< SG::IAuxTypeVector > | create (SG::auxid_t auxid, size_t size, size_t capacity, bool isLinked) const override |
Create a new vector in memory with the requested size and capacity. More... | |
virtual std::unique_ptr< SG::IAuxTypeVector > | createFromData (SG::auxid_t auxid, void *data, SG::IAuxTypeVector *linkedVector, bool isPacked, bool ownFlag, bool isLinked) const override |
Create a vector object of this type from a data blob. More... | |
virtual void | copy (SG::auxid_t auxid, SG::AuxVectorData &dst, size_t dst_index, const SG::AuxVectorData &src, size_t src_index, size_t n) const override |
Copy elements from one location to another. More... | |
virtual void | copyForOutput (SG::auxid_t auxid, SG::AuxVectorData &dst, size_t dst_index, const SG::AuxVectorData &src, size_t src_index, size_t n) const override |
Copy one element from one location to another. More... | |
virtual void | swap (SG::auxid_t auxid, SG::AuxVectorData &a, size_t aindex, SG::AuxVectorData &b, size_t bindex, size_t n) const override |
Swap the payload of two ranges of elements in memory. More... | |
void | clear (void *dst, size_t dst_index, size_t n) const |
Clear the payload of a given range inside a vector. More... | |
virtual void | clear (SG::auxid_t auxid, SG::AuxVectorData &dst, size_t dst_index, size_t n) const override |
Clear a range of elements within a vector. More... | |
virtual size_t | getEltSize () const override |
Size of the elements inside the vector type. More... | |
virtual const std::type_info * | tiVec () const override |
Type info of the vector type handled by the factory object. More... | |
virtual bool | isDynamic () const override |
Type of the factory. More... | |
virtual const std::type_info * | tiAlloc () const override |
Return the type_info of the vector allocator. More... | |
virtual std::string | tiAllocName () const override |
Return the (demangled) name of the vector allocator. More... | |
Private Attributes | |
::TClass * | m_class |
The type that this factory operates on. More... | |
::TVirtualCollectionProxy * | m_proxy |
ROOT's description of the vector type. More... | |
RootUtils::TSMethodCall m_assign | ATLAS_THREAD_SAFE |
Assignment operator. More... | |
void * | m_defElt |
Pointer to a default element object in memory. More... | |
Auxiliary vector factory based on a ROOT dictionary.
Factory implementation that creates vectors that can be operated on using ROOT's dictionary for the underlying vector type.
The code is pretty much a copy of what Scott wrote for RootStorageSvc for the offline code.
Definition at line 30 of file TAuxVectorFactory.h.
xAOD::TAuxVectorFactory::TAuxVectorFactory | ( | ::TClass * | cl | ) |
Constructor, setting up the object based on a dictionary.
Definition at line 22 of file TAuxVectorFactory.cxx.
|
virtual |
Destructor.
Definition at line 52 of file TAuxVectorFactory.cxx.
|
delete |
|
overridevirtual |
Clear a range of elements within a vector.
auxid | The aux data item being operated on. |
dst | Container holding the element |
dst_index | Index of the first element in the vector. |
n | Number of elements to clear. |
Implements SG::IAuxTypeVectorFactory.
Definition at line 230 of file TAuxVectorFactory.cxx.
void xAOD::TAuxVectorFactory::clear | ( | void * | dst, |
size_t | dst_index, | ||
size_t | n | ||
) | const |
Clear the payload of a given range inside a vector.
Definition at line 200 of file TAuxVectorFactory.cxx.
|
inlineinherited |
Copy elements between vectors.
auxid | The aux data item being operated on. |
dst | Container for the destination vector. Declared as a rvalue reference to allow passing a temporary here (such as from AuxVectorInterface). |
dst_index | Index of the first destination element in the vector. |
src | Container for the source vector. |
src_index | Index of the first source element in the vector. |
n | Number of elements to copy. |
dst
and @ src can be either the same or different.
Definition at line 132 of file IAuxTypeVectorFactory.h.
|
overridevirtual |
Copy elements from one location to another.
Implements SG::IAuxTypeVectorFactory.
Definition at line 81 of file TAuxVectorFactory.cxx.
|
overridevirtual |
Copy one element from one location to another.
Implements SG::IAuxTypeVectorFactory.
Definition at line 128 of file TAuxVectorFactory.cxx.
|
overridevirtual |
Create a new vector in memory with the requested size and capacity.
Implements SG::IAuxTypeVectorFactory.
Definition at line 61 of file TAuxVectorFactory.cxx.
|
overridevirtual |
Create a vector object of this type from a data blob.
Implements SG::IAuxTypeVectorFactory.
Definition at line 71 of file TAuxVectorFactory.cxx.
|
overridevirtual |
Size of the elements inside the vector type.
Implements SG::IAuxTypeVectorFactory.
Definition at line 239 of file TAuxVectorFactory.cxx.
|
inlineoverridevirtual |
Type of the factory.
Implements SG::IAuxTypeVectorFactory.
Definition at line 91 of file TAuxVectorFactory.h.
|
delete |
|
overridevirtual |
Swap the payload of two ranges of elements in memory.
Implements SG::IAuxTypeVectorFactory.
Definition at line 142 of file TAuxVectorFactory.cxx.
|
overridevirtual |
Return the type_info
of the vector allocator.
May be nullptr for a dynamic vector.
Implements SG::IAuxTypeVectorFactory.
Definition at line 249 of file TAuxVectorFactory.cxx.
|
overridevirtual |
Return the (demangled) name of the vector allocator.
Implements SG::IAuxTypeVectorFactory.
Definition at line 254 of file TAuxVectorFactory.cxx.
|
overridevirtual |
Type info of the vector type handled by the factory object.
Implements SG::IAuxTypeVectorFactory.
Definition at line 244 of file TAuxVectorFactory.cxx.
|
mutableprivate |
Assignment operator.
Definition at line 115 of file TAuxVectorFactory.h.
|
private |
The type that this factory operates on.
Definition at line 111 of file TAuxVectorFactory.h.
|
private |
Pointer to a default element object in memory.
Definition at line 117 of file TAuxVectorFactory.h.
|
private |
ROOT's description of the vector type.
Definition at line 113 of file TAuxVectorFactory.h.