#include <Arena.H>
A Virtual Base Class for Dynamic Memory Management
This is a virtual base class for objects that manage their own dynamic memory allocation. Since it is a virtual base class, you have to derive something from it to use it.
Public Types | |
typedef void(* | FP )() |
Public Member Functions | |
Arena () | |
base class constructor | |
virtual | ~Arena () |
base class destructor. | |
virtual void * | alloc (size_t a_sz)=0 |
virtual void | free (void *a_pt)=0 |
Static Public Member Functions | |
static size_t | align (size_t a_sz) |
typedef void(* Arena::FP)() |
Arena::Arena | ( | ) |
base class constructor
base class constructor. registers Arena object with memory tracking system
virtual Arena::~Arena | ( | ) | [virtual] |
base class destructor.
base class destructor. unregisters Arena object with memory tracking system
virtual void* Arena::alloc | ( | size_t | a_sz | ) | [pure virtual] |
Allocate a dynamic memory arena of size a_sz. A pointer to this memory should be returned.
Implemented in BArena, and CArena.
Referenced by BaseFab< T >::define().
virtual void Arena::free | ( | void * | a_pt | ) | [pure virtual] |
A pure virtual function for deleting the arena pointed to by a_pt.
Implemented in BArena, and CArena.
Referenced by BaseFab< T >::undefine().
size_t Arena::align | ( | size_t | a_sz | ) | [inline, static] |
Given a minimum required arena size of a_sz bytes, this returns the next largest arena size that will hold an integral number of objects of the largest of the types void*, long, double and function pointer.