![]() |
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.
1.8.18