|
lean cpp library
A lean C++ library providing efficient utility classes for high-performance C++ applications.
|
Contiguous chunk allocator heap. More...
#include <chunk_heap.h>
Inherits noncopyable.
Classes | |
| struct | chunk_header |
| Chunk header. | |
Public Types | |
| typedef Heap | heap_type |
| Heap type. | |
| typedef heap_type::size_type | size_type |
| Size type. | |
Public Member Functions | |
| LEAN_INLINE | chunk_heap (size_type chunkSize=ChunkSize) |
| Constructor. | |
| LEAN_INLINE | ~chunk_heap () |
| Destructor. | |
| LEAN_INLINE void | nextChunkSize (size_type nextSize) |
| Sets the next chunk size. | |
| LEAN_INLINE size_type | nextChunkSize () const |
| Gets the next chunk size. | |
| LEAN_INLINE size_type | capacity () const |
| Gets the remaining capacity of the current chunk. | |
| LEAN_INLINE void | reserve (size_type newCapacity, size_type minChunkSize=chunk_size) |
| Tweaks the next chunk size to fit at least the given amount of objects about to be allocated. Passing 0 for. | |
| void | clear () |
| Clears and frees all chunks allocated by this allocator. | |
| void | clearButFirst () |
| Clears all chunks and frees all chunks but the first one dynamically allocated by this allocator if it has not been exhausted yet. | |
| bool | currentStatic () |
| Gets whether the current chunk is static. | |
| char * | currentOffset () |
| Gets the current chunk offset. | |
| char * | clearCurrent () |
| Clears the current chunk but frees none. | |
| char * | clearFreeNext () |
| Clears all chunks and frees the current chunk, returning the next. | |
| LEAN_INLINE void * | allocate (size_type size) |
| Allocates the given amount of memory. | |
| LEAN_INLINE void | free (void *memory) |
| Frees the given block of memory. | |
| template<size_t Alignment> | |
| LEAN_INLINE void * | allocate (size_type size) |
| Allocates the given amount of memory respecting the given alignment. | |
| template<size_t Alignment> | |
| LEAN_INLINE void | free (void *memory) |
| Frees the given aligned block of memory. | |
Static Public Attributes | |
| static const size_type | chunk_size = ChunkSize |
| Chunk size. | |
| static const size_type | default_alignment = DefaultAlignment |
| Default alignment. | |
Contiguous chunk allocator heap.
| LEAN_INLINE void lean::memory::chunk_heap< ChunkSize, Heap, StaticChunkSize, DefaultAlignment >::reserve | ( | size_type | newCapacity, |
| size_type | minChunkSize = chunk_size |
||
| ) | [inline] |
Tweaks the next chunk size to fit at least the given amount of objects about to be allocated. Passing 0 for.
minChunkSize
will result in an exact fit of the given amount of objects. WARNING: When passing 0 for an exact fit, either call
after you're done allocating or recall
reserve()
for sensible reallocation behavior in subsequent bulk allocations.
1.7.6.1