  | 
  
    ATLAS Offline Software
    
   | 
 
 
 
 
Go to the documentation of this file.
   48 #ifndef ATHCONTAINERS_DATAVECTORWITHALLOC_H 
   49 #define ATHCONTAINERS_DATAVECTORWITHALLOC_H 
   56 #include <type_traits> 
   64 template <
class DV, 
class ALLOC>
 
  104   typedef typename std::reverse_iterator<iterator>
 
  122   using DV::trackIndices;
 
  123   using DV::testInsert;
 
  124   using DV::getConstStore;
 
  126   using DV::setConstStore;
 
  127   using DV::setNonConstStore;
 
  128   using DV::hasNonConstStore;
 
  145   using DV::operator[];
 
  178     using base_ptr = std::unique_ptr<base_value_type, UPDeleter>;
 
  184     Ptr(std::nullptr_t) noexcept;
 
  188     Ptr& operator= (std::nullptr_t) noexcept;
 
  195     bool operator== (std::nullptr_t) 
const noexcept;
 
  196     bool operator!= (std::nullptr_t) 
const noexcept;
 
  225     using Base = std::unique_ptr<DataVectorWithAlloc>;
 
  227     operator std::unique_ptr<const DV> () && noexcept
 
  775     using Base = 
typename DV::Deleter;
 
  804 #ifndef XAOD_STANDALONE 
  812 template <
class DV, 
class ALLOC>
 
  817   static constexpr 
bool s_isConst = 
true;
 
  833 template <
class DV, 
class ALLOC>
 
  860 template <
class DV, 
class ALLOC, 
class U>
 
  864   static void init() { DV::dvlinfo(); }
 
  872 template <
class DV, 
class ALLOC>
 
  882 #endif // not XAOD_STANDALONE 
  888 #endif // not ATHCONTAINERS_DATAVECTORWITHALLOC_H 
  
DV::const_reference const_reference
 
DataVector< base_value_type > base_data_vector
 
char data[hepevt_bytes_allocation_ATLAS]
 
static const bool has_virtual
This needs to be forwarded from the base as well.
 
Internal helper to serve as a deleter for our unique_ptr class.
 
Helper for unique_ptr conversions.
 
const SG::AuxVectorBase & auxbase() const
Convert to AuxVectorBase.
 
iterator insert(iterator position, Ptr pElem)
Add a new element to the collection.
 
DataModel_detail::ElementProxy< DataVectorWithAlloc > ElementProxy
This type is used to proxy lvalue accesses to DataVector elements, in order to handle ownership.
 
reverse_iterator rend() noexcept
Return a reverse_iterator pointing at the beginning of the collection.
 
DV::size_type size_type
Basic types, forwarded from the base.
 
size_type push_new(size_type n)
Create and add a number of new elements to the end of the container.
 
iterator begin() noexcept
Return an iterator pointing at the beginning of the collection.
 
reverse_iterator rbegin() noexcept
Return a reverse_iterator pointing past the end of the collection.
 
DV::value_type value_type
 
elt_allocator_type & heap() noexcept
 
value_type push_back(Ptr pElem)
Add an element to the end of the collection.
 
DataVector using a custom allocator for the elements.
 
DVLDataVectorWithAllocBucket(std::unique_ptr< DataVectorWithAlloc< DV, ALLOC > > data)
Constructor from a payload object.
 
elt_allocator_type & elt_allocator()
Return the underlying allocator.
 
value_type emplace_back(Ptr pElem)
Add an element to the end of the collection.
 
iterator to_my_iterator(typename DV::iterator it)
Convert an iterator of the base DataVector to a DataVectorWithAlloc::iterator.
 
static void iter_swap(iterator a, iterator b)
Swap the referents of two DataVector iterators.
 
DV::const_iterator const_iterator
 
DataVectorWithAlloc(elt_allocator_type &&eltAlloc=elt_allocator_type())
Default constructor.
 
DVLDataVectorWithAllocBucket(DataVectorWithAlloc< DV, ALLOC > *data)
Constructor from a payload object.
 
DV::BaseContainer BaseContainer
 
bool const RAWDATA *ch2 const
 
ElementProxy front()
Access the first element in the collection as an lvalue.
 
std::reverse_iterator< iterator > reverse_iterator
Standard reverse_iterator.
 
ElementProxy back()
Access the last element in the collection as an lvalue.
 
ElementProxy at(size_type n)
Access an element, as an lvalue.
 
auto rend() const noexcept
 
DV::const_value_type const_value_type
 
SG::DVLDataVectorWithAllocBucket< DV, ALLOC > type
 
std::true_type isSequence
 
DataVectorWithAlloc(size_type n, elt_allocator_type &&eltAlloc=elt_allocator_type())
Sized constructor.
 
DV::const_reverse_iterator const_reverse_iterator
 
static ContainerUniquePtr make_unique()
Helper for unique_ptr conversions.
 
iterator emplace(iterator position, Ptr pElem)
Add a new element to the collection.
 
(Non-const) Iterator class for DataVector/DataList.
 
DataVectorWithAlloc & operator=(const DataVectorWithAlloc &rhs)=delete
 
DataVectorWithAlloc(DataVectorWithAlloc &&rhs)
Move constructor.
 
const DV * asDataVector() const
Return a pointer to this object, as a const DataVector.
 
a traits class that associates a CLID to a type T It also detects whether T inherits from Gaudi DataO...
 
typename base_ptr::pointer pointer
 
Hook for unprotecting an arena.
 
Default, invalid implementation of ClassID_traits.
 
static constexpr bool must_own
If true, then this type must own its contents.
 
Provide an interface for finding inheritance information at run time.
 
DataModel_detail::iterator< DataVectorWithAlloc > iterator
The iterator for this type.
 
std::unique_ptr< DataVectorWithAlloc > Base
 
void swap(DataVectorWithAlloc &rhs)
Swap this collection with another.
 
const elt_allocator_type & elt_allocator() const
Return the underlying allocator.
 
void resortAux(iterator beg, iterator end)
Reset indices / reorder aux data after elements have been permuted.
 
static DV::iterator to_base_iterator(iterator it)
Convert a DataVectorWithAlloc::iterator to an iterator of the base DataVector.
 
static const DataVectorWithAlloc * fromDataVector(const DV *dv)
Cast from a DataVector to a DataVectorWithAlloc.
 
typename base_ptr::element_type element_type
 
ElementProxy to_element_proxy(typename BaseContainer::iterator i)
Convert an iterator of the base vector to an ElementProxy for the DataVectorWithAlloc.
 
DV::allocator_type allocator_type
 
DataVectorWithAlloc(const DataVectorWithAlloc &)=delete
 
DV::base_value_type base_value_type
 
std::unique_ptr< base_value_type, UPDeleter > base_ptr
 
DV::difference_type difference_type
 
iterator erase(iterator position)
Remove element at a given position.
 
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
 
void assignElement(typename BaseContainer::iterator pos, Ptr newElem)
Handle element assignment.
 
An STL vector of pointers that by default owns its pointed-to elements.
 
iterator end() noexcept
Return an iterator pointing past the end of the collection.
 
Ptr(std::nullptr_t) noexcept
 
void clear()
Erase all the elements in the collection.
 
friend void test2_assignelement1a()
 
A DataBucket specialized for DataVector/DataList.
 
ElementProxy operator[](size_type n)
Access an element, as an lvalue.
 
Ptr allocate(Args &&... args)
Allocate a new vector element.
 
void shrink_to_fit()
Change the vector capacity to match the current size.
 
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
 
const elt_allocator_type * heap() const noexcept
 
unique_ptr holding an element for this vector.
 
typename Base::PtrVector PtrVector
 
elt_allocator_type * m_heap
 
void swapElement(size_type index, Ptr newElem, Ptr &oldElem)
Swap one element out of the container.
 
ALLOC elt_allocator_type
Type of the allocator use for vector elements.
 
Proxy for lvalue access to DataVector/DataList elements.
 
DV::const_pointer const_pointer
 
STL-style allocator wrapper for ArenaHeapAllocator.
 
virtual ~DataVectorWithAlloc()
Destructor.
 
auto rbegin() const noexcept
 
Metafunction to find the proper DataBucket class for T.
 
setBGCode setTAP setLVL2ErrorBits bool
 
DataBucket class for DataVectorWithAlloc.
 
DataVector< SG::AuxElement > BaseContainer
 
Internal helper to delete vector elements.
 
HeapDeleter(elt_allocator_type &&heap)