Generated on Thu Mar 22 10:39:49 2012 for Gecode by doxygen 1.6.3

Space-memory management
[Memory management]

Classes

class  Gecode::FreeList
 Base-class for freelist-managed objects. More...
class  Gecode::RangeList
 Lists of ranges (intervals). 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 2054 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 2062 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 2068 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 2073 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 2080 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 2087 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 2093 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 2098 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 2105 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 2121 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 2128 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 2134 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 2183 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 2188 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 2195 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 2201 of file core.hpp.

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

Allocate memory on space heap.

Definition at line 2008 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 2012 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 2016 of file core.hpp.

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

Allocate from freelist-managed memory.

Definition at line 2031 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 2036 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 2041 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.