ATLAS Offline Software
|
Implementation of IAuxTypeVector
holding a vector of PackedLink
.
More...
#include <PackedLinkVector.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 | |
PackedLinkVectorT (auxid_t auxid, size_t size, size_t capacity, std::unique_ptr< IAuxTypeVector > linkedVec) | |
Constructor. More... | |
PackedLinkVectorT (const PackedLinkVectorT &other) | |
Copy constructor. More... | |
PackedLinkVectorT (PackedLinkVectorT &&other) | |
Move constructor. More... | |
PackedLinkVectorT & | operator= (const PackedLinkVectorT &other)=delete |
No assignment. More... | |
PackedLinkVectorT & | operator= (PackedLinkVectorT &&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 PackedLink
.
This is a derived class of PackedLinkVectorHolder
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 207 of file PackedLinkVector.h.
using SG::PackedLinkVectorT< HOLDER >::Base = HOLDER |
Definition at line 211 of file PackedLinkVector.h.
using SG::PackedLinkVectorT< HOLDER >::element_type = typename Base::element_type |
Definition at line 213 of file PackedLinkVector.h.
using SG::PackedLinkVectorT< HOLDER >::vector_type = typename Base::vector_type |
Definition at line 212 of file PackedLinkVector.h.
using SG::PackedLinkVectorT< HOLDER >::vector_value_type = typename Base::vector_value_type |
Definition at line 214 of file PackedLinkVector.h.
SG::PackedLinkVectorT< HOLDER >::PackedLinkVectorT | ( | 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::PackedLinkVectorT< HOLDER >::PackedLinkVectorT | ( | const PackedLinkVectorT< HOLDER > & | other | ) |
Copy constructor.
SG::PackedLinkVectorT< HOLDER >::PackedLinkVectorT | ( | PackedLinkVectorT< 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 263 of file PackedLinkVector.h.
|
private |
The contained vector.
Definition at line 260 of file PackedLinkVector.h.