Generated on Sat Feb 12 2011 17:41:10 for Gecode by doxygen 1.7.3

Space-memory management

Classes

class  Gecode::FreeList
 Base-class for freelist-managed objects. More...

Namespaces

namespace  Gecode::MemoryConfig
 

Parameters defining memory management policy for spaces.


Functions

template<class T >
T * Gecode::Space::alloc (long unsigned int n)
 Allocate block of n objects of type T from space heap.
template<class T >
T * Gecode::Space::alloc (long int n)
 Allocate block of n objects of type T from space heap.
template<class T >
T * Gecode::Space::alloc (unsigned int n)
 Allocate block of n objects of type T from space heap.
template<class T >
T * Gecode::Space::alloc (int n)
 Allocate block of n objects of type T from space heap.
template<class T >
void Gecode::Space::free (T *b, long unsigned int n)
 Delete n objects allocated from space heap starting at b.
template<class T >
void Gecode::Space::free (T *b, long int n)
 Delete n objects allocated from space heap starting at b.
template<class T >
void Gecode::Space::free (T *b, unsigned int n)
 Delete n objects allocated from space heap starting at b.
template<class T >
void Gecode::Space::free (T *b, int n)
 Delete n objects allocated from space heap starting at b.
template<class T >
T * Gecode::Space::realloc (T *b, long unsigned int n, long unsigned int m)
 Reallocate block of n objects starting at b to m objects of type T from the space heap.
template<class T >
T * Gecode::Space::realloc (T *b, long int n, long int m)
 Reallocate block of n objects starting at b to m objects of type T from the space heap.
template<class T >
T * Gecode::Space::realloc (T *b, unsigned int n, unsigned int m)
 Reallocate block of n objects starting at b to m objects of type T from the space heap.
template<class T >
T * Gecode::Space::realloc (T *b, int n, int m)
 Reallocate block of n objects starting at b to m objects of type T from the space heap.
template<class T >
T ** Gecode::Space::realloc (T **b, long unsigned int n, long unsigned int m)
 Reallocate block of n pointers starting at b to m objects of type T* from the space heap.
template<class T >
T ** Gecode::Space::realloc (T **b, long int n, long int m)
 Reallocate block of n pointers starting at b to m objects of type T* from the space heap.
template<class T >
T ** Gecode::Space::realloc (T **b, unsigned int n, unsigned int m)
 Reallocate block of n pointers starting at b to m objects of type T* from the space heap.
template<class T >
T ** Gecode::Space::realloc (T **b, int n, int m)
 Reallocate block of n pointers starting at b to m objects of type T* from the space heap.
void * Gecode::Space::ralloc (size_t s)
 Allocate memory on space heap.
void Gecode::Space::rfree (void *p, size_t s)
 Free memory previously allocated with alloc (might be reused later)
void * Gecode::Space::rrealloc (void *b, size_t n, size_t m)
 Reallocate memory block starting at b from size n to size s.
template<size_t >
void * Gecode::Space::fl_alloc (void)
 Allocate from freelist-managed memory.
template<size_t >
void Gecode::Space::fl_dispose (FreeList *f, FreeList *l)
 Return freelist-managed memory to freelist.
size_t Gecode::Space::allocated (void) const
 Return how much heap memory is allocated.
void Gecode::Space::flush (void)
 Flush cached memory blocks and AFC information.

Function Documentation

template<class T >
T * Gecode::Space::alloc ( long unsigned int  n) [inline, inherited]

Allocate block of n objects of type T from space heap.

Note that this function implements C++ semantics: the default constructor of T is run for all n objects.

Definition at line 2024 of file core.hpp.

template<class T >
T * Gecode::Space::alloc ( long int  n) [inline, inherited]

Allocate block of n objects of type T from space heap.

Note that this function implements C++ semantics: the default constructor of T is run for all n objects.

Definition at line 2032 of file core.hpp.

template<class T >
T * Gecode::Space::alloc ( unsigned int  n) [inline, inherited]

Allocate block of n objects of type T from space heap.

Note that this function implements C++ semantics: the default constructor of T is run for all n objects.

Definition at line 2038 of file core.hpp.

template<class T >
T * Gecode::Space::alloc ( int  n) [inline, inherited]

Allocate block of n objects of type T from space heap.

Note that this function implements C++ semantics: the default constructor of T is run for all n objects.

Definition at line 2043 of file core.hpp.

template<class T >
void Gecode::Space::free ( T *  b,
long unsigned int  n 
) [inline, inherited]

Delete n objects allocated from space heap starting at b.

Note that this function implements C++ semantics: the destructor of T is run for all n objects.

Note that the memory is not freed, it is just scheduled for later reusal.

Definition at line 2050 of file core.hpp.

template<class T >
void Gecode::Space::free ( T *  b,
long int  n 
) [inline, inherited]

Delete n objects allocated from space heap starting at b.

Note that this function implements C++ semantics: the destructor of T is run for all n objects.

Note that the memory is not freed, it is just scheduled for later reusal.

Definition at line 2057 of file core.hpp.

template<class T >
void Gecode::Space::free ( T *  b,
unsigned int  n 
) [inline, inherited]

Delete n objects allocated from space heap starting at b.

Note that this function implements C++ semantics: the destructor of T is run for all n objects.

Note that the memory is not freed, it is just scheduled for later reusal.

Definition at line 2063 of file core.hpp.

template<class T >
void Gecode::Space::free ( T *  b,
int  n 
) [inline, inherited]

Delete n objects allocated from space heap starting at b.

Note that this function implements C++ semantics: the destructor of T is run for all n objects.

Note that the memory is not freed, it is just scheduled for later reusal.

Definition at line 2068 of file core.hpp.

template<class T >
T * Gecode::Space::realloc ( T *  b,
long unsigned int  n,
long unsigned int  m 
) [inline, inherited]

Reallocate block of n objects starting at b to m objects of type T from the space heap.

Note that this function implements C++ semantics: the copy constructor of T is run for all $\min(n,m)$ objects, the default constructor of T is run for all remaining $\max(n,m)-\min(n,m)$ objects, and the destrucor of T is run for all n objects in b.

Returns the address of the new block.

Definition at line 2075 of file core.hpp.

template<class T >
T * Gecode::Space::realloc ( T *  b,
long int  n,
long int  m 
) [inline, inherited]

Reallocate block of n objects starting at b to m objects of type T from the space heap.

Note that this function implements C++ semantics: the copy constructor of T is run for all $\min(n,m)$ objects, the default constructor of T is run for all remaining $\max(n,m)-\min(n,m)$ objects, and the destrucor of T is run for all n objects in b.

Returns the address of the new block.

Definition at line 2091 of file core.hpp.

template<class T >
T * Gecode::Space::realloc ( T *  b,
unsigned int  n,
unsigned int  m 
) [inline, inherited]

Reallocate block of n objects starting at b to m objects of type T from the space heap.

Note that this function implements C++ semantics: the copy constructor of T is run for all $\min(n,m)$ objects, the default constructor of T is run for all remaining $\max(n,m)-\min(n,m)$ objects, and the destrucor of T is run for all n objects in b.

Returns the address of the new block.

Definition at line 2098 of file core.hpp.

template<class T >
T * Gecode::Space::realloc ( T *  b,
int  n,
int  m 
) [inline, inherited]

Reallocate block of n objects starting at b to m objects of type T from the space heap.

Note that this function implements C++ semantics: the copy constructor of T is run for all $\min(n,m)$ objects, the default constructor of T is run for all remaining $\max(n,m)-\min(n,m)$ objects, and the destrucor of T is run for all n objects in b.

Returns the address of the new block.

Definition at line 2104 of file core.hpp.

template<class T >
T ** Gecode::Space::realloc ( T **  b,
long unsigned int  n,
long unsigned int  m 
) [inline, inherited]

Reallocate block of n pointers starting at b to m objects of type T* from the space heap.

Returns the address of the new block.

This is a specialization for performance.

Definition at line 2153 of file core.hpp.

template<class T >
T ** Gecode::Space::realloc ( T **  b,
long int  n,
long int  m 
) [inline, inherited]

Reallocate block of n pointers starting at b to m objects of type T* from the space heap.

Returns the address of the new block.

This is a specialization for performance.

Definition at line 2158 of file core.hpp.

template<class T >
T ** Gecode::Space::realloc ( T **  b,
unsigned int  n,
unsigned int  m 
) [inline, inherited]

Reallocate block of n pointers starting at b to m objects of type T* from the space heap.

Returns the address of the new block.

This is a specialization for performance.

Definition at line 2165 of file core.hpp.

template<class T >
T ** Gecode::Space::realloc ( T **  b,
int  n,
int  m 
) [inline, inherited]

Reallocate block of n pointers starting at b to m objects of type T* from the space heap.

Returns the address of the new block.

This is a specialization for performance.

Definition at line 2171 of file core.hpp.

void * Gecode::Space::ralloc ( size_t  s) [inline, inherited]

Allocate memory on space heap.

Definition at line 1978 of file core.hpp.

void Gecode::Space::rfree ( void *  p,
size_t  s 
) [inline, inherited]

Free memory previously allocated with alloc (might be reused later)

Definition at line 1982 of file core.hpp.

void * Gecode::Space::rrealloc ( void *  b,
size_t  n,
size_t  m 
) [inline, inherited]

Reallocate memory block starting at b from size n to size s.

Definition at line 1986 of file core.hpp.

template<size_t s>
void * Gecode::Space::fl_alloc ( void  ) [inline, inherited]

Allocate from freelist-managed memory.

Definition at line 2001 of file core.hpp.

template<size_t s>
void Gecode::Space::fl_dispose ( FreeList f,
FreeList l 
) [inline, inherited]

Return freelist-managed memory to freelist.

The first list element to be retuned is f, the last is l.

Definition at line 2006 of file core.hpp.

size_t Gecode::Space::allocated ( void  ) const [inline, inherited]

Return how much heap memory is allocated.

Note that is includes both the memory allocated for the space heap as well as additional memory allocated by actors.

Definition at line 2011 of file core.hpp.

void Gecode::Space::flush ( void  ) [inherited]

Flush cached memory blocks and AFC information.

All spaces that are obtained as non-shared clones from some same space try to cache memory blocks from failed spaces. To minimize memory consumption, these blocks can be flushed.

Also, the numbers for AFC are reset to zero.

Definition at line 150 of file core.cpp.