static_mem_pool< _Sz, _Gid > Class Template Reference

Singleton class template to manage the allocation/deallocation of memory blocks of one specific size. More...

#include <static_mem_pool.h>

Inheritance diagram for static_mem_pool< _Sz, _Gid >:

Inheritance graph
[legend]
Collaboration diagram for static_mem_pool< _Sz, _Gid >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

void * allocate ()
 Allocates memory and returns its pointer.
void deallocate (void *__ptr)
 Deallocates memory by putting the memory block into the pool.
virtual void recycle ()
 Recycles half of the free memory blocks in the memory pool to the system.

Static Public Member Functions

static static_mem_poolinstance ()
 Gets the instance of the static memory pool.
static static_mem_poolinstance_known ()
 Gets the known instance of the static memory pool.

Detailed Description

template<size_t _Sz, int _Gid = -1>
class static_mem_pool< _Sz, _Gid >

Singleton class template to manage the allocation/deallocation of memory blocks of one specific size.

Parameters:
_Sz size of elements in the static_mem_pool
_Gid group id of a static_mem_pool: if it is negative, simultaneous accesses to this static_mem_pool will be protected from each other; otherwise no protection is given


Member Function Documentation

template<size_t _Sz, int _Gid = -1>
static static_mem_pool& static_mem_pool< _Sz, _Gid >::instance (  )  [inline, static]

Gets the instance of the static memory pool.

It will create the instance if it does not already exist. Generally this function is now not needed.

Returns:
reference to the instance of the static memory pool
See also:
instance_known

template<size_t _Sz, int _Gid = -1>
static static_mem_pool& static_mem_pool< _Sz, _Gid >::instance_known (  )  [inline, static]

Gets the known instance of the static memory pool.

The instance must already exist. Generally the static initializer of the template guarantees it.

Returns:
reference to the instance of the static memory pool

template<size_t _Sz, int _Gid = -1>
void* static_mem_pool< _Sz, _Gid >::allocate (  )  [inline]

Allocates memory and returns its pointer.

The template will try to get it from the memory pool first, and request memory from the system if there is no free memory in the pool.

Returns:
pointer to allocated memory if successful; NULL otherwise

template<size_t _Sz, int _Gid = -1>
void static_mem_pool< _Sz, _Gid >::deallocate ( void *  __ptr  )  [inline]

Deallocates memory by putting the memory block into the pool.

Parameters:
__ptr pointer to memory to be deallocated

template<size_t _Sz, int _Gid>
void static_mem_pool< _Sz, _Gid >::recycle (  )  [virtual]

Recycles half of the free memory blocks in the memory pool to the system.

It is called when a memory request to the system (in other instances of the static memory pool) fails.

Implements mem_pool_base.


The documentation for this class was generated from the following file:
Generated on Mon Dec 31 15:07:36 2007 for Nvwa by  doxygen 1.5.1