Chombo + EB
3.2
|
A Concrete Class for Dynamic Memory Management. More...
#include <Arena.H>
Public Types | |
enum | { DefaultHunkSize = 1024*1024 } |
The default memory hunk size to grab from the heap. More... | |
Public Types inherited from Arena | |
typedef void(* | FP) () |
Public Member Functions | |
CArena (size_t a_hunk_size=0) | |
virtual | ~CArena () |
The destructor. More... | |
virtual void * | alloc (size_t a_nbytes) |
Allocate some memory. More... | |
virtual void | free (void *a_vp) |
Public Member Functions inherited from Arena | |
Arena () | |
base class constructor More... | |
virtual | ~Arena () |
base class destructor. More... | |
Private Member Functions | |
CArena (const CArena &a_rhs) | |
CArena & | operator= (const CArena &a_rhs) |
Additional Inherited Members | |
Static Public Member Functions inherited from Arena | |
static size_t | align (size_t a_sz) |
A Concrete Class for Dynamic Memory Management.
This is a coalescing memory manager. It allocates (possibly) large chunks of heap space and apportions it out as requested. It merges together neighboring chunks on each free().
CArena::CArena | ( | size_t | a_hunk_size = 0 | ) |
: Construct a coalescing memory manager. `a_hunk_size' is the minimum size of hunks of memory to allocate from the heap. If a_hunk_size == 0 we use DefaultHunkSize as specified below.
|
virtual |
The destructor.
|
private |
|
virtual |
Allocate some memory.
Implements Arena.
|
virtual |
Free up allocated memory. Merge neighboring free memory chunks into largest possible chunk.
Implements Arena.