1#ifndef MIDDLEBOX_MEMORYPOOL_HH
2#define MIDDLEBOX_MEMORYPOOL_HH
21 int const DEFAULT_ALLOC = 1024;
46 MemoryPoolNode *node = first;
47 MemoryPoolNode *toDelete = NULL;
70 allocateMoreMemory(initialSize);
78 MemoryPoolNode *node = first;
82 allocateMoreMemory(DEFAULT_ALLOC);
96 ((MemoryPoolNode*)p)->next = first;
97 first = (MemoryPoolNode*)p;
104 MemoryPoolNode *next;
123 void allocateMoreMemory(
unsigned int size)
125 MemoryPoolNode *node = NULL;
127 for(
unsigned i = 0; i < size; ++i)
130 node =
new MemoryPoolNode;
137 MemoryPoolNode* first;
Template for memory pools.
Definition memorypool.hh:20
MemoryPool()
Construct an empty MemoryPool.
Definition memorypool.hh:25
void releaseMemory(T *p)
Release memory and put it back in the pool.
Definition memorypool.hh:94
~MemoryPool()
Destruct the memory pool.
Definition memorypool.hh:44
MemoryPool(unsigned int initialSize)
Construct a MemoryPool.
Definition memorypool.hh:33
T * getMemory()
Obtain memory from the memory pool.
Definition memorypool.hh:76
void initialize(unsigned int initialSize)
Initialize the MemoryPool.
Definition memorypool.hh:63