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

Gecode::Region Class Reference
[Region memory management]

Handle to region. More...

#include <region.hpp>

List of all members.

Public Member Functions

 Region (const Space &home)
 Initialize region from space.
 ~Region (void)
 Return memory.

Typed allocation routines



template<class T >
T * alloc (long unsigned int n)
 Allocate block of n objects of type T from region.
template<class T >
T * alloc (long int n)
 Allocate block of n objects of type T from region.
template<class T >
T * alloc (unsigned int n)
 Allocate block of n objects of type T from region.
template<class T >
T * alloc (int n)
 Allocate block of n objects of type T from region.
template<class T >
void free (T *b, long unsigned int n)
 Delete n objects allocated from the region starting at b.
template<class T >
void free (T *b, long int n)
 Delete n objects allocated from the region starting at b.
template<class T >
void free (T *b, unsigned int n)
 Delete n objects allocated from the region starting at b.
template<class T >
void free (T *b, int n)
 Delete n objects allocated from the region 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 the region.
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 the region.
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 the region.
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 the region.

Raw allocation routines



void * ralloc (size_t s)
 Allocate memory from region.
void rfree (void *p, size_t s)
 Free memory previously allocated.

Construction routines



template<class T >
T & construct (void)
 Constructs a single object of type T from region using the default constructor.
template<class T , typename A1 >
T & construct (A1 const &a1)
 Constructs a single object of type T from region using a unary constructor.
template<class T , typename A1 , typename A2 >
T & construct (A1 const &a1, A2 const &a2)
 Constructs a single object of type T from region using a binary constructor.
template<class T , typename A1 , typename A2 , typename A3 >
T & construct (A1 const &a1, A2 const &a2, A3 const &a3)
 Constructs a single object of type T from region using a ternary constructor.
template<class T , typename A1 , typename A2 , typename A3 , typename A4 >
T & construct (A1 const &a1, A2 const &a2, A3 const &a3, A4 const &a4)
 Constructs a single object of type T from region using a quaternary constructor.
template<class T , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
T & construct (A1 const &a1, A2 const &a2, A3 const &a3, A4 const &a4, A5 const &a5)
 Constructs a single object of type T from region using a quinary constructor.

Detailed Description

Handle to region.

Definition at line 61 of file region.hpp.


Constructor & Destructor Documentation

Gecode::Region::Region ( const Space home  )  [inline]

Initialize region from space.

Definition at line 298 of file region.hpp.

Gecode::Region::~Region ( void   )  [inline]

Return memory.

Definition at line 313 of file region.hpp.


Member Function Documentation

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

Allocate block of n objects of type T from region.

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

Definition at line 326 of file region.hpp.

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

Allocate block of n objects of type T from region.

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

Definition at line 334 of file region.hpp.

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

Allocate block of n objects of type T from region.

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

Definition at line 340 of file region.hpp.

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

Allocate block of n objects of type T from region.

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

Definition at line 345 of file region.hpp.

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

Delete n objects allocated from the region 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, the only effect is running the destructors.

Definition at line 352 of file region.hpp.

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

Delete n objects allocated from the region 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, the only effect is running the destructors.

Definition at line 359 of file region.hpp.

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

Delete n objects allocated from the region 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, the only effect is running the destructors.

Definition at line 365 of file region.hpp.

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

Delete n objects allocated from the region 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, the only effect is running the destructors.

Definition at line 370 of file region.hpp.

template<class T >
T * Gecode::Region::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 the region.

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 377 of file region.hpp.

template<class T >
T * Gecode::Region::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 the region.

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 393 of file region.hpp.

template<class T >
T * Gecode::Region::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 the region.

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 400 of file region.hpp.

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

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

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 406 of file region.hpp.

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

Allocate memory from region.

Definition at line 302 of file region.hpp.

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

Free memory previously allocated.

Note that the memory is only guaranteed to be freed after the region object itself gets deleted.

Definition at line 310 of file region.hpp.

template<class T >
T & Gecode::Region::construct ( void   )  [inline]

Constructs a single object of type T from region using the default constructor.

Definition at line 418 of file region.hpp.

template<class T , typename A1 >
T & Gecode::Region::construct ( A1 const &  a1  )  [inline]

Constructs a single object of type T from region using a unary constructor.

The parameter is passed as a const reference.

Definition at line 423 of file region.hpp.

template<class T , typename A1 , typename A2 >
T & Gecode::Region::construct ( A1 const &  a1,
A2 const &  a2 
) [inline]

Constructs a single object of type T from region using a binary constructor.

The parameters are passed as const references.

Definition at line 430 of file region.hpp.

template<class T , typename A1 , typename A2 , typename A3 >
T & Gecode::Region::construct ( A1 const &  a1,
A2 const &  a2,
A3 const &  a3 
) [inline]

Constructs a single object of type T from region using a ternary constructor.

The parameters are passed as const references.

Definition at line 437 of file region.hpp.

template<class T , typename A1 , typename A2 , typename A3 , typename A4 >
T & Gecode::Region::construct ( A1 const &  a1,
A2 const &  a2,
A3 const &  a3,
A4 const &  a4 
) [inline]

Constructs a single object of type T from region using a quaternary constructor.

The parameters are passed as const references.

Definition at line 444 of file region.hpp.

template<class T , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
T & Gecode::Region::construct ( A1 const &  a1,
A2 const &  a2,
A3 const &  a3,
A4 const &  a4,
A5 const &  a5 
) [inline]

Constructs a single object of type T from region using a quinary constructor.

The parameters are passed as const references.

Definition at line 451 of file region.hpp.


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