My Project
Public Member Functions | Static Public Member Functions | List of all members
static_mem_pool< _Sz, _Gid > Class Template Reference

#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]

Public Member Functions

void * allocate ()
 
void deallocate (void *__ptr)
 
virtual void recycle ()
 

Static Public Member Functions

static static_mem_poolinstance ()
 
static static_mem_poolinstance_known ()
 

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
_Szsize of elements in the static_mem_pool
_Gidgroup 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

◆ allocate()

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

◆ deallocate()

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
__ptrpointer to memory to be deallocated

◆ instance()

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

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

◆ instance_known()

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

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

◆ recycle()

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.


The documentation for this class was generated from the following file: