Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
Allocators::DynamicArena< BLOCK_SIZE > Class Template Reference

'Blind' memory allocator. More...

#include <DynamicArena.h>

Classes

class  Block
 

Public Member Functions

 DynamicArena ()
 
void AllocateNewBlock ()
 
void * allocate (size_t n, const void *, size_t alignment)
 
void deallocate (void *p, size_t n)
 
void clear ()
 

Protected Member Functions

 NONCOPYABLE (DynamicArena)
 

Protected Attributes

std::vector< Blockm_Blocks
 

Detailed Description

template<size_t BLOCK_SIZE>
class Allocators::DynamicArena< BLOCK_SIZE >

'Blind' memory allocator.

Characteristics:

  • grows dynamically, and linearily, by BLOCK_SIZE
  • no reallocations, pointers remain valid
  • can allocate objects up to BLOCK_SIZE in size
  • can handle any aligment (up to BLOCK_SIZE)
  • Doesn't de-allocate unless cleared or destroyed.

Constructor & Destructor Documentation

◆ DynamicArena()

template<size_t BLOCK_SIZE>
Allocators::DynamicArena< BLOCK_SIZE >::DynamicArena ( )
inline

Member Function Documentation

◆ allocate()

template<size_t BLOCK_SIZE>
void * Allocators::DynamicArena< BLOCK_SIZE >::allocate ( size_t  n,
const void *  ,
size_t  alignment 
)
inline

◆ AllocateNewBlock()

template<size_t BLOCK_SIZE>
void Allocators::DynamicArena< BLOCK_SIZE >::AllocateNewBlock ( )
inline

◆ clear()

template<size_t BLOCK_SIZE>
void Allocators::DynamicArena< BLOCK_SIZE >::clear ( )
inline

◆ deallocate()

template<size_t BLOCK_SIZE>
void Allocators::DynamicArena< BLOCK_SIZE >::deallocate ( void *  p,
size_t  n 
)
inline

◆ NONCOPYABLE()

template<size_t BLOCK_SIZE>
Allocators::DynamicArena< BLOCK_SIZE >::NONCOPYABLE ( DynamicArena< BLOCK_SIZE )
protected

Member Data Documentation

◆ m_Blocks

template<size_t BLOCK_SIZE>
std::vector<Block> Allocators::DynamicArena< BLOCK_SIZE >::m_Blocks
protected

The documentation for this class was generated from the following file: