DynamicObjectPool< T > Class Template Reference

An object pool that dynamically allocates its objects. More...

#include <DynamicObjectPool.h++>

Inheritance diagram for DynamicObjectPool< T >:
Inheritance graph
[legend]

List of all members.

Classes

struct  Link

Public Member Functions

 DynamicObjectPool (size_t size, void(*resetFunc)(T *), bool lazy=false)
 Construct a new DynamicObjectPool of the given size.
 ~DynamicObjectPool () throw ()
 Destructor.
T * reserve () throw (ObjectPoolException)
 Reserve an object from the pool.
void release (T *elem) throw (ObjectPoolException)
 Release an object back to the pool.
size_t getSize () const throw ()
 Get the size of the pool, i.e., the total number of objects (both reserved and available) in the pool.
uint_t getAvailable () const throw ()
 Get the number of available (unreserved) objects in the pool.

Protected Attributes

size_t _size
 The size of the pool (i.e., the maximum number of objects managed by the pool).
uint_t _avail
 The number of objects currently available (not reserved) in the pool.

Detailed Description

template<class T>
class ccxx::DynamicObjectPool< T >

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.

Author:
Mark Lindner

Constructor & Destructor Documentation

DynamicObjectPool ( size_t  size,
void(*)(T *)  resetFunc,
bool  lazy = false 
)

Construct a new DynamicObjectPool of the given size.

Parameters:
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 (  )  throw ()

Destructor.

Deletes all of the objects managed the pool, whether or not they are reserved.


Member Function Documentation

uint_t getAvailable (  )  const throw () [inline, inherited]

Get the number of available (unreserved) objects in the pool.

size_t getSize (  )  const throw () [inline, inherited]

Get the size of the pool, i.e., the total number of objects (both reserved and available) in the pool.

void release ( T *  elem  )  throw (ObjectPoolException) [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.

Parameters:
elem The object to release.
Exceptions:
ObjectPoolException If elem is NULL.

Implements ObjectPool< T >.

T* reserve (  )  throw (ObjectPoolException) [virtual]

Reserve an object from the pool.

Returns:
A pointer to the reserved object.
Exceptions:
ObjectPoolException If there are no more objects available in the pool.

Implements ObjectPool< T >.


Member Data Documentation

uint_t _avail [protected, inherited]

The number of objects currently available (not reserved) in the pool.

size_t _size [protected, inherited]

The size of the pool (i.e., the maximum number of objects managed by the pool).


The documentation for this class was generated from the following file:
Generated on Sat Nov 26 16:49:09 2011 for libcommonc++ by  doxygen 1.6.3