dune-common  2.4.1-rc2
Classes | Functions

Implementations of the STL allocator concept. More...

Collaboration diagram for Allocators:

Classes

class  Dune::DebugAllocator< T >
 Allocators implementation which performs different kind of memory checks. More...
 
class  Dune::MallocAllocator< T >
 Allocators implementation which simply calls malloc/free. More...
 
class  Dune::Pool< T, s >
 A memory pool of objects. More...
 
class  Dune::PoolAllocator< T, s >
 An allocator managing a pool of objects for reuse. More...
 
class  Dune::PoolAllocator< void, s >
 

Functions

template<typename T1 , std::size_t t1, typename T2 , std::size_t t2>
bool Dune::operator== (const PoolAllocator< T1, t1 > &, const PoolAllocator< T2, t2 > &)
 
template<typename T1 , std::size_t t1, typename T2 , std::size_t t2>
bool Dune::operator!= (const PoolAllocator< T1, t1 > &, const PoolAllocator< T2, t2 > &)
 
template<typename T , std::size_t t1, std::size_t t2>
bool Dune::operator== (const PoolAllocator< T, t1 > &p1, const PoolAllocator< T, t2 > &p2)
 
template<typename T , std::size_t t1, std::size_t t2>
bool Dune::operator!= (const PoolAllocator< T, t1 > &p1, const PoolAllocator< T, t2 > &p2)
 
template<typename T , std::size_t t1, std::size_t t2>
bool Dune::operator== (const PoolAllocator< void, t1 > &, const PoolAllocator< T, t2 > &)
 
template<typename T , std::size_t t1, std::size_t t2>
bool Dune::operator!= (const PoolAllocator< void, t1 > &, const PoolAllocator< T, t2 > &)
 
template<std::size_t t1, std::size_t t2>
bool Dune::operator== (const PoolAllocator< void, t1 > &p1, const PoolAllocator< void, t2 > &p2)
 
template<std::size_t t1, std::size_t t2>
bool Dune::operator!= (const PoolAllocator< void, t1 > &p1, const PoolAllocator< void, t2 > &p2)
 
 Dune::Pool< T, s >::Pool ()
 Constructor. More...
 
 Dune::Pool< T, s >::~Pool ()
 Destructor. More...
 
void Dune::Pool< T, s >::print (std::ostream &os)
 Print elements in pool for debugging. More...
 
void Dune::Pool< T, s >::free (void *o)
 Free an object. More...
 
void * Dune::Pool< T, s >::allocate ()
 Get a new or recycled object. More...
 
 Dune::PoolAllocator< T, s >::PoolAllocator ()
 Constructor. More...
 
pointer Dune::PoolAllocator< T, s >::allocate (std::size_t n, const_pointer hint=0)
 Allocates objects. More...
 
void Dune::PoolAllocator< T, s >::deallocate (pointer p, std::size_t n)
 Free objects. More...
 
void Dune::PoolAllocator< T, s >::construct (pointer p, const_reference value)
 Construct an object. More...
 
void Dune::PoolAllocator< T, s >::destroy (pointer p)
 Destroy an object without freeing memory. More...
 

Detailed Description

Implementations of the STL allocator concept.

Function Documentation

template<class T , std::size_t S>
void * Dune::Pool< T, S >::allocate ( )
inline

Get a new or recycled object.

Returns
A pointer to the object memory.
template<class T , std::size_t s>
PoolAllocator< T, s >::pointer Dune::PoolAllocator< T, s >::allocate ( std::size_t  n,
const_pointer  hint = 0 
)
inline

Allocates objects.

Parameters
nThe number of objects to allocate. Has to be one!
hintIgnored hint.
Returns
A pointer tp the allocated elements.
template<class T , std::size_t s>
void Dune::PoolAllocator< T, s >::construct ( pointer  p,
const_reference  value 
)
inline

Construct an object.

Parameters
pPointer to the object.
valueThe value to initialize it to.
template<class T , std::size_t s>
void Dune::PoolAllocator< T, s >::deallocate ( pointer  p,
std::size_t  n 
)
inline

Free objects.

Does not call the destructor!

Parameters
nThe number of objects to free. Has to be one!
pPointer to the first object.
template<class T , std::size_t s>
void Dune::PoolAllocator< T, s >::destroy ( pointer  p)
inline

Destroy an object without freeing memory.

Parameters
pPointer to the object.
template<class T , std::size_t S>
void Dune::Pool< T, S >::free ( void *  o)
inline

Free an object.

Parameters
oThe pointer to memory block of the object.

References Dune::Pool< T, s >::chunkSize.

template<typename T1 , std::size_t t1, typename T2 , std::size_t t2>
bool Dune::operator!= ( const PoolAllocator< T1, t1 > &  ,
const PoolAllocator< T2, t2 > &   
)
template<typename T , std::size_t t1, std::size_t t2>
bool Dune::operator!= ( const PoolAllocator< T, t1 > &  p1,
const PoolAllocator< T, t2 > &  p2 
)
template<typename T , std::size_t t1, std::size_t t2>
bool Dune::operator!= ( const PoolAllocator< void, t1 > &  ,
const PoolAllocator< T, t2 > &   
)
template<std::size_t t1, std::size_t t2>
bool Dune::operator!= ( const PoolAllocator< void, t1 > &  p1,
const PoolAllocator< void, t2 > &  p2 
)
template<typename T1 , std::size_t t1, typename T2 , std::size_t t2>
bool Dune::operator== ( const PoolAllocator< T1, t1 > &  ,
const PoolAllocator< T2, t2 > &   
)
template<typename T , std::size_t t1, std::size_t t2>
bool Dune::operator== ( const PoolAllocator< T, t1 > &  p1,
const PoolAllocator< T, t2 > &  p2 
)
template<typename T , std::size_t t1, std::size_t t2>
bool Dune::operator== ( const PoolAllocator< void, t1 > &  ,
const PoolAllocator< T, t2 > &   
)
template<std::size_t t1, std::size_t t2>
bool Dune::operator== ( const PoolAllocator< void, t1 > &  p1,
const PoolAllocator< void, t2 > &  p2 
)
template<class T , std::size_t S>
Dune::Pool< T, S >::Pool ( )
inline
template<class T , std::size_t s>
Dune::PoolAllocator< T, s >::PoolAllocator ( )
inline

Constructor.

template<class T , std::size_t S>
void Dune::Pool< T, S >::print ( std::ostream &  os)
inline

Print elements in pool for debugging.

References Dune::Pool< T, s >::alignedSize, and Dune::Pool< T, s >::elements.

template<class T , std::size_t S>
Dune::Pool< T, S >::~Pool ( )
inline

Destructor.