libcommonc++
0.7
|
An object pool that dynamically allocates its objects. More...
#include <DynamicObjectPool.h++>
Public Member Functions | |
DynamicObjectPool (uint_t size, void(*resetFunc)(T *), bool lazy=false) | |
Construct a new DynamicObjectPool of the given size. More... | |
~DynamicObjectPool () | |
Destructor. More... | |
T * | reserve () |
Reserve an object from the pool. More... | |
void | release (T *elem) |
Release an object back to the pool. More... | |
uint_t | getSize () const |
Get the size of the pool, i.e., the total number of objects (both reserved and available) in the pool. More... | |
uint_t | getAvailable () const |
Get the number of available (unreserved) objects in the pool. More... | |
Protected Attributes | |
uint_t | _size |
The size of the pool (i.e., the maximum number of objects managed by the pool). More... | |
uint_t | _avail |
The number of objects currently available (not reserved) in the pool. More... | |
An object pool that dynamically allocates its objects.
DynamicObjectPool allocates objects on the heap, either all at once when the pool is constructed, or on an as-needed basis, up to the specified limit.
The template parameter T must be a class which has a default constructor. This constructor is used to create new instances of the object.
DynamicObjectPool | ( | uint_t | size, |
void(*)(T *) | resetFunc, | ||
bool | lazy = false |
||
) |
Construct a new DynamicObjectPool of the given size.
size | The maximum number of objects to allocate in the pool. |
resetFunc | A function that will be used to "reset" objects to their initial state when they are returned to the pool. |
lazy | A flag indicating whether objects will be allocated as needed or initially all at once. |
~DynamicObjectPool | ( | ) |
Destructor.
Deletes all of the objects managed the pool, whether or not they are reserved.
|
inlineinherited |
Get the number of available (unreserved) objects in the pool.
|
inlineinherited |
Get the size of the pool, i.e., the total number of objects (both reserved and available) in the pool.
|
virtual |
Release an object back to the pool.
The object's reset member function is called before the object is released back to the pool.
elem | The object to release. |
ObjectPoolException | If elem is NULL. |
Implements ObjectPool< T >.
|
virtual |
Reserve an object from the pool.
ObjectPoolException | If there are no more objects available in the pool. |
Implements ObjectPool< T >.
|
protectedinherited |
The number of objects currently available (not reserved) in the pool.
|
protectedinherited |
The size of the pool (i.e., the maximum number of objects managed by the pool).