Generated on Thu Apr 11 13:59:49 2019 for Gecode by doxygen 1.6.3

Gecode::Heap Class Reference
[%Heap memory management]

Heap memory management class More...

#include <heap.hpp>

List of all members.

Public Member Functions

 Heap (void)
 Default constructor (ensuring that only a single instance is created).

Typed allocation routines



template<class T >
T * alloc (long unsigned int n)
 Allocate block of n objects of type T from heap.
template<class T >
T * alloc (long int n)
 Allocate block of n objects of type T from heap.
template<class T >
T * alloc (unsigned int n)
 Allocate block of n objects of type T from heap.
template<class T >
T * alloc (int n)
 Allocate block of n objects of type T from heap.
template<class T >
void free (T *b, long unsigned int n)
 Delete n objects starting at b.
template<class T >
void free (T *b, long int n)
 Delete n objects starting at b.
template<class T >
void free (T *b, unsigned int n)
 Delete n objects starting at b.
template<class T >
void free (T *b, int n)
 Delete n objects starting at b.
template<class T >
T * 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 heap.
template<class T >
T * realloc (T *b, long int n, long int m)
 Reallocate block of n objects starting at b to m objects of type T from heap.
template<class T >
T * realloc (T *b, unsigned int n, unsigned int m)
 Reallocate block of n objects starting at b to m objects of type T from heap.
template<class T >
T * realloc (T *b, int n, int m)
 Reallocate block of n objects starting at b to m objects of type T from heap.
template<class T >
T ** 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 heap.
template<class T >
T ** realloc (T **b, long int n, long int m)
 Reallocate block of n pointers starting at b to m objects of type T* from heap.
template<class T >
T ** realloc (T **b, unsigned int n, unsigned int m)
 Reallocate block of n pointers starting at b to m objects of type T* from heap.
template<class T >
T ** realloc (T **b, int n, int m)
 Reallocate block of n pointers starting at b to m objects of type T* from heap.
template<class T >
static T * copy (T *d, const T *s, long unsigned int n)
 Copy n objects starting at s to d.
template<class T >
static T * copy (T *d, const T *s, long int n)
 Copy n objects starting at s to d.
template<class T >
static T * copy (T *d, const T *s, unsigned int n)
 Copy n objects starting at s to d.
template<class T >
static T * copy (T *d, const T *s, int n)
 Copy n objects starting at s to d.
template<class T >
static T ** copy (T **d, const T **s, long unsigned int n)
 Copy n pointers starting at s to d.
template<class T >
static T ** copy (T **d, const T **s, long int n)
 Copy n pointers starting at s to d.
template<class T >
static T ** copy (T **d, const T **s, unsigned int n)
 Copy n pointers starting at s to d.
template<class T >
static T ** copy (T **d, const T **s, int n)
 Copy n pointers starting at s to d.

Raw allocation routines



void * ralloc (size_t s)
 Allocate s bytes from heap.
void rfree (void *p)
 Free memory block starting at p.
void rfree (void *p, size_t s)
 Free memory block starting at p with size s.
void * rrealloc (void *p, size_t s)
 Change memory block starting at p to size s.

Detailed Description

Heap memory management class

All routines throw an exception of MemoryExhausted, if a request cannot be fulfilled.

Definition at line 62 of file heap.hpp.


Constructor & Destructor Documentation

Gecode::Heap::Heap ( void   ) 

Default constructor (ensuring that only a single instance is created).

Definition at line 38 of file heap.cpp.


Member Function Documentation

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

Allocate block of n objects of type T from heap.

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

Definition at line 431 of file heap.hpp.

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

Allocate block of n objects of type T from heap.

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

Definition at line 439 of file heap.hpp.

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

Allocate block of n objects of type T from heap.

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

Definition at line 445 of file heap.hpp.

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

Allocate block of n objects of type T from heap.

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

Definition at line 450 of file heap.hpp.

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

Delete n objects starting at b.

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

Definition at line 457 of file heap.hpp.

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

Delete n objects starting at b.

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

Definition at line 464 of file heap.hpp.

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

Delete n objects starting at b.

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

Definition at line 470 of file heap.hpp.

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

Delete n objects starting at b.

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

Definition at line 475 of file heap.hpp.

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

Reallocate block of n objects starting at b to m objects of type T from 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 482 of file heap.hpp.

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

Reallocate block of n objects starting at b to m objects of type T from 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 495 of file heap.hpp.

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

Reallocate block of n objects starting at b to m objects of type T from 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 502 of file heap.hpp.

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

Reallocate block of n objects starting at b to m objects of type T from 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 508 of file heap.hpp.

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

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

Returns the address of the new block.

This is a specialization for performance.

Definition at line 557 of file heap.hpp.

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

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

Returns the address of the new block.

This is a specialization for performance.

Definition at line 562 of file heap.hpp.

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

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

Returns the address of the new block.

This is a specialization for performance.

Definition at line 569 of file heap.hpp.

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

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

Returns the address of the new block.

This is a specialization for performance.

Definition at line 575 of file heap.hpp.

template<class T >
T * Gecode::Heap::copy ( T *  d,
const T *  s,
long unsigned int  n 
) [inline, static]

Copy n objects starting at s to d.

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

Returns d.

Definition at line 583 of file heap.hpp.

template<class T >
T * Gecode::Heap::copy ( T *  d,
const T *  s,
long int  n 
) [inline, static]

Copy n objects starting at s to d.

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

Returns d.

Definition at line 590 of file heap.hpp.

template<class T >
T * Gecode::Heap::copy ( T *  d,
const T *  s,
unsigned int  n 
) [inline, static]

Copy n objects starting at s to d.

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

Returns d.

Definition at line 596 of file heap.hpp.

template<class T >
T * Gecode::Heap::copy ( T *  d,
const T *  s,
int  n 
) [inline, static]

Copy n objects starting at s to d.

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

Returns d.

Definition at line 601 of file heap.hpp.

template<class T >
T ** Gecode::Heap::copy ( T **  d,
const T **  s,
long unsigned int  n 
) [inline, static]

Copy n pointers starting at s to d.

Returns d.

This is a specialization for performance.

Definition at line 646 of file heap.hpp.

template<class T >
T ** Gecode::Heap::copy ( T **  d,
const T **  s,
long int  n 
) [inline, static]

Copy n pointers starting at s to d.

Returns d.

This is a specialization for performance.

Definition at line 651 of file heap.hpp.

template<class T >
T ** Gecode::Heap::copy ( T **  d,
const T **  s,
unsigned int  n 
) [inline, static]

Copy n pointers starting at s to d.

Returns d.

This is a specialization for performance.

Definition at line 657 of file heap.hpp.

template<class T >
T ** Gecode::Heap::copy ( T **  d,
const T **  s,
int  n 
) [inline, static]

Copy n pointers starting at s to d.

Returns d.

This is a specialization for performance.

Definition at line 662 of file heap.hpp.

void * Gecode::Heap::ralloc ( size_t  s  )  [inline]

Allocate s bytes from heap.

Definition at line 357 of file heap.hpp.

void Gecode::Heap::rfree ( void *  p  )  [inline]

Free memory block starting at p.

Definition at line 371 of file heap.hpp.

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

Free memory block starting at p with size s.

Definition at line 381 of file heap.hpp.

void * Gecode::Heap::rrealloc ( void *  p,
size_t  s 
) [inline]

Change memory block starting at p to size s.

Definition at line 391 of file heap.hpp.


The documentation for this class was generated from the following files: