Sacado Package Browser (Single Doxygen Collection) Version of the Day
Classes | Public Member Functions | Protected Attributes | Private Member Functions
Sacado::Fad::MemPool Class Reference

Memory pool. More...

#include <Sacado_Fad_MemPool.hpp>

List of all members.

Classes

struct  Chunk
 Represents a memory chunk. More...
struct  Link
 Represents a memory element. More...

Public Member Functions

 MemPool (unsigned int elem_size, unsigned int n_elem, unsigned int pre_alloc=0)
 Constructor. elem_size is the size of elements, n_elem is the number of elements per chunk. pre_alloc is the number of chunks to pre-allocate.
 ~MemPool ()
 Destructor.
void * alloc ()
 Allocate a new element.
void free (void *b)
 Free an element.
unsigned int numChunks () const
 Return number of allocated chunks.

Protected Attributes

const unsigned int esize
 Size of elements in a chunk.
const unsigned int n
 Number of elements per chunk.
const unsigned int csize
 Size of memory chunks.
Chunkchunks
 Pointer to memory chunks.
Linkhead
 Pointer to first free link.
unsigned int num_chunks
 Number of allocated chunks.

Private Member Functions

 MemPool (const MemPool &)
 Private to prohibit copying.
MemPooloperator= (const MemPool &)
 Private to prohibit copying.
void grow ()
 Allocate a new chunk.

Detailed Description

Memory pool.

Definition at line 40 of file Sacado_Fad_MemPool.hpp.


Constructor & Destructor Documentation

Sacado::Fad::MemPool::MemPool ( unsigned int  elem_size,
unsigned int  n_elem,
unsigned int  pre_alloc = 0 
) [inline]

Constructor. elem_size is the size of elements, n_elem is the number of elements per chunk. pre_alloc is the number of chunks to pre-allocate.

Definition at line 35 of file Sacado_Fad_MemPoolImp.hpp.

Sacado::Fad::MemPool::~MemPool ( ) [inline]

Destructor.

Definition at line 51 of file Sacado_Fad_MemPoolImp.hpp.

Sacado::Fad::MemPool::MemPool ( const MemPool ) [private]

Private to prohibit copying.


Member Function Documentation

void * Sacado::Fad::MemPool::alloc ( ) [inline]

Allocate a new element.

Definition at line 62 of file Sacado_Fad_MemPoolImp.hpp.

void Sacado::Fad::MemPool::free ( void *  b) [inline]

Free an element.

Definition at line 73 of file Sacado_Fad_MemPoolImp.hpp.

unsigned int Sacado::Fad::MemPool::numChunks ( ) const [inline]

Return number of allocated chunks.

Definition at line 62 of file Sacado_Fad_MemPool.hpp.

MemPool& Sacado::Fad::MemPool::operator= ( const MemPool ) [private]

Private to prohibit copying.

void Sacado::Fad::MemPool::grow ( ) [inline, private]

Allocate a new chunk.

Definition at line 83 of file Sacado_Fad_MemPoolImp.hpp.


Member Data Documentation

const unsigned int Sacado::Fad::MemPool::esize [protected]

Size of elements in a chunk.

Definition at line 90 of file Sacado_Fad_MemPool.hpp.

const unsigned int Sacado::Fad::MemPool::n [protected]

Number of elements per chunk.

Definition at line 93 of file Sacado_Fad_MemPool.hpp.

const unsigned int Sacado::Fad::MemPool::csize [protected]

Size of memory chunks.

Definition at line 96 of file Sacado_Fad_MemPool.hpp.

Pointer to memory chunks.

Definition at line 99 of file Sacado_Fad_MemPool.hpp.

Pointer to first free link.

Definition at line 102 of file Sacado_Fad_MemPool.hpp.

unsigned int Sacado::Fad::MemPool::num_chunks [protected]

Number of allocated chunks.

Definition at line 105 of file Sacado_Fad_MemPool.hpp.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines