Generated on Mon Jul 6 18:09:24 2009 for Gecode by doxygen 1.5.9

Space-memory management
[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.

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 1941 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 1949 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 1955 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 1960 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 latter reusal.

Definition at line 1967 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 latter reusal.

Definition at line 1974 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 latter reusal.

Definition at line 1980 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 latter reusal.

Definition at line 1985 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 1992 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 2008 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 2015 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 2021 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 2070 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 2075 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 2082 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 2088 of file core.hpp.

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

Allocate memory on space heap.

Definition at line 1895 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 1899 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 1903 of file core.hpp.

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

Allocate from freelist-managed memory.

Definition at line 1918 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 1923 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 1928 of file core.hpp.

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

Flush cached memory blocks.

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.

Definition at line 149 of file core.cpp.