19#ifndef ATLALLOCATORS_ARENAHANDLEBASET_H
20#define ATLALLOCATORS_ARENAHANDLEBASET_H
24#include "boost/iterator/iterator_adaptor.hpp"
36template <
class T,
class ALLOC>
65 const EventContext& ctx,
95 :
public boost::iterator_adaptor<
97 typename ALLOC::iterator,
99 boost::forward_traversal_tag>
139 :
public boost::iterator_adaptor<
141 typename ALLOC::const_iterator,
143 boost::forward_traversal_tag>
Base class for Handle classes, containing parts that depend only on the Allocator....
CONT::reference reference
Part of Arena dealing with the list of allocators.
ArenaHandleBaseAllocT(ArenaHeader *header, size_t index)
Constructor, passing in an index.
const_iterator::reference dereference() const
Dereference the iterator.
friend class boost::iterator_core_access
const_iterator(const typename ALLOC::const_iterator &it)
Constructor.
const_iterator(const iterator &it)
Constructor from a non-const iterator.
iterator(const typename ALLOC::iterator &it)
Constructor.
iterator::reference dereference() const
Dereference the iterator.
friend class boost::iterator_core_access
friend class const_iterator
const_iterator begin() const
Starting const iterator.
T * pointer
A pointer to the element type we're allocating.
ArenaHandleBaseT(ArenaHeader *header, const EventContext &ctx, size_t index)
Constructor, passing in an index, for a specific event slot.
iterator end()
Ending iterator.
ArenaHandleBaseT(ArenaBase *arena, size_t index)
Constructor, passing in an index, for a specific Arena.
iterator begin()
Starting iterator.
const_iterator end() const
Ending const iterator.
ArenaHandleBaseT(ArenaHeader *header, size_t index)
Constructor, passing in an index.
ArenaHandleBaseAllocT< ALLOC > Base
Shorthand for our base class.
void free(pointer p)
Free an element.
void resetTo(pointer p)
Reset pool back to a previous state.