ATLAS Offline Software
|
Implementation of IAuxTypeVector
holding a vector of JaggedVec
.
More...
#include <JaggedVecVector.h>
Public Types | |
using | Base = HOLDER |
using | vector_type = typename Base::vector_type |
using | element_type = typename Base::element_type |
using | vector_value_type = typename Base::vector_value_type |
Public Member Functions | |
JaggedVecVectorT (auxid_t auxid, size_t size, size_t capacity, std::unique_ptr< IAuxTypeVector > linkedVec) | |
Constructor. More... | |
JaggedVecVectorT (const JaggedVecVectorT &other) | |
Copy constructor. More... | |
JaggedVecVectorT (JaggedVecVectorT &&other) | |
Move constructor. More... | |
JaggedVecVectorT & | operator= (const JaggedVecVectorT &other)=delete |
No assignment. More... | |
JaggedVecVectorT & | operator= (JaggedVecVectorT &&other)=delete |
virtual std::unique_ptr< IAuxTypeVector > | clone () const override |
Make a copy of this vector. More... | |
virtual std::unique_ptr< IAuxTypeVector > | linkedVector () override |
Return ownership of the linked vector. More... | |
Private Attributes | |
vector_type | m_vec |
The contained vector. More... | |
std::unique_ptr< IAuxTypeVector > | m_linkedVecHolder |
Holding ownership of the linked vector. More... | |
Implementation of IAuxTypeVector
holding a vector of JaggedVec
.
This is a derived class of JaggedVecVectorHolder
that holds the vector instance as a member variable (and thus manages memory internally). It is templated on the base class, so that we can also use this for classes which derive from AuxTypeVectorHolder.
When an instance of this is created, it gets ownership of the linked vector via the constructor. When this interface gets added to an auxiliary store, the ownership of the linked vector will be transferred away using the linkedVector()
method, allowing it to be added to the store as well.
Definition at line 160 of file JaggedVecVector.h.
using SG::JaggedVecVectorT< HOLDER >::Base = HOLDER |
Definition at line 164 of file JaggedVecVector.h.
using SG::JaggedVecVectorT< HOLDER >::element_type = typename Base::element_type |
Definition at line 166 of file JaggedVecVector.h.
using SG::JaggedVecVectorT< HOLDER >::vector_type = typename Base::vector_type |
Definition at line 165 of file JaggedVecVector.h.
using SG::JaggedVecVectorT< HOLDER >::vector_value_type = typename Base::vector_value_type |
Definition at line 167 of file JaggedVecVector.h.
SG::JaggedVecVectorT< HOLDER >::JaggedVecVectorT | ( | auxid_t | auxid, |
size_t | size, | ||
size_t | capacity, | ||
std::unique_ptr< IAuxTypeVector > | linkedVec | ||
) |
Constructor.
Makes a new vector.
auxid | The auxid of the variable this vector represents. |
size | Initial size of the new vector. |
capacity | Initial capacity of the new vector. |
linkedVec | Ownership of the linked vector. |
SG::JaggedVecVectorT< HOLDER >::JaggedVecVectorT | ( | const JaggedVecVectorT< HOLDER > & | other | ) |
Copy constructor.
SG::JaggedVecVectorT< HOLDER >::JaggedVecVectorT | ( | JaggedVecVectorT< HOLDER > && | other | ) |
Move constructor.
|
overridevirtual |
Make a copy of this vector.
|
overridevirtual |
Return ownership of the linked vector.
|
delete |
No assignment.
|
delete |
|
private |
Holding ownership of the linked vector.
Definition at line 216 of file JaggedVecVector.h.
|
private |
The contained vector.
Definition at line 213 of file JaggedVecVector.h.