Generated on Mon Aug 25 11:35:46 2008 for Gecode by doxygen 1.5.6

Reflection API
[Reflection and serialization]


Detailed Description

The reflection API provides information about the propagators, branchings, and variables in a space. More detailed, step-by-step information can be found in the reflection tutorial.

Requires

 #include "gecode/kernel.hh" 


Classes

class  Gecode::Reflection::ReflectionException
 Exception for errors during reflection. More...
class  Gecode::Reflection::NoReflectionDefinedException
 Exception: no reflection defined. More...
class  Gecode::Reflection::Arg
 Arguments for actor and variable specifications. More...
class  Gecode::Reflection::ArrayArg
 Array arguments. More...
class  Gecode::Reflection::IntArrayArg
 Integer array arguments. More...
class  Gecode::Reflection::IntArrayArgRanges
 Iterate over an IntArrayArg, interpreting consecutive pairs of integers as ranges. More...
class  Gecode::Reflection::VarSpec
 Variable specification More...
class  Gecode::Reflection::ActorSpec
 Actor specification More...
class  Gecode::Reflection::BranchingSpec
 Branching specification More...
class  Gecode::Reflection::ActorSpecIter
 Iterating actor specifications. More...
class  Gecode::Reflection::Registry
 Registry of constraint posting and variable creation functions. More...
class  Gecode::Reflection::ActorRegistrar< P >
 Class used for registering actors. More...
class  Gecode::Reflection::VarImpRegistrar< V >
 Class used for registering variable implementations. More...
class  Gecode::Reflection::Var
 Generic variables. More...
class  Gecode::Reflection::Unreflector
 Unreflection from VarSpec and ActorSpec

An Unreflector allows you to install variables and propagators in a Space using variable and actor specifications. More...

class  Gecode::Reflection::TypeOf< View >
 String representation for View types, used for name mangling. More...
class  Gecode::Reflection::TypeOf< bool >
 String representation for bool, used for name mangling. More...
class  Gecode::Reflection::TypeOf< int >
 String representation for ints, used for name mangling. More...
class  Gecode::Reflection::TypeOf< double >
 String representation for doubles, used for name mangling. More...
class  Gecode::Reflection::TypeOf< const IntSet >
 String representation for IntSets, used for name mangling. More...
class  Gecode::Reflection::VarMap
 Mapping Gecode variable implementations to variable specifications. More...
class  Gecode::Reflection::VarMapIter
 Iterating a variable map. More...

Defines

#define GECODE_REGISTER1(P)   ::Gecode::Reflection::ActorRegistrar< P > GECODE_FRESH(r)
 Register a propagator with zero or one template argument.
#define GECODE_REGISTER2(P1, P2)   ::Gecode::Reflection::ActorRegistrar< P1,P2 > GECODE_FRESH(r)
 Register a propagator with two template arguments.
#define GECODE_REGISTER3(P1, P2, P3)   ::Gecode::Reflection::ActorRegistrar< P1,P2,P3 > GECODE_FRESH(r)
 Register a propagator with three template arguments.
#define GECODE_REGISTER4(P1, P2, P3, P4)   ::Gecode::Reflection::ActorRegistrar< P1,P2,P3,P4 > GECODE_FRESH(r)
 Register a propagator with four template arguments.
#define GECODE_REGISTER5(P1, P2, P3, P4, P5)   ::Gecode::Reflection::ActorRegistrar< P1,P2,P3,P4,P5 > GECODE_FRESH(r)
 Register a propagator with five template arguments.
#define GECODE_REGISTER6(P1, P2, P3, P4, P5, P6)   ::Gecode::Reflection::ActorRegistrar< P1,P2,P3,P4,P5,P6 > GECODE_FRESH(r)
 Register a propagator with six template arguments.

Functions

Registry & Gecode::Reflection::registry (void)
 The registry object.
template<class View0>
Support::Symbol Gecode::Reflection::mangle (const Support::Symbol &ati)
 Mangle ati with type information.
template<class View0>
Support::Symbol Gecode::Reflection::mangle (const Support::Symbol &ati, bool b)
 Mangle ati with type information.
template<class View0>
Support::Symbol Gecode::Reflection::mangle (const Support::Symbol &ati, int i)
 Mangle ati with type information.
template<class View0>
Support::Symbol Gecode::Reflection::mangle (const Support::Symbol &ati, unsigned int i)
 Mangle ati with type information.


Define Documentation

#define GECODE_REGISTER1 (  )     ::Gecode::Reflection::ActorRegistrar< P > GECODE_FRESH(r)

Register a propagator with zero or one template argument.

Definition at line 802 of file reflection.icc.

#define GECODE_REGISTER2 ( P1,
P2   )     ::Gecode::Reflection::ActorRegistrar< P1,P2 > GECODE_FRESH(r)

Register a propagator with two template arguments.

Definition at line 805 of file reflection.icc.

#define GECODE_REGISTER3 ( P1,
P2,
P3   )     ::Gecode::Reflection::ActorRegistrar< P1,P2,P3 > GECODE_FRESH(r)

Register a propagator with three template arguments.

Definition at line 808 of file reflection.icc.

#define GECODE_REGISTER4 ( P1,
P2,
P3,
P4   )     ::Gecode::Reflection::ActorRegistrar< P1,P2,P3,P4 > GECODE_FRESH(r)

Register a propagator with four template arguments.

Definition at line 811 of file reflection.icc.

#define GECODE_REGISTER5 ( P1,
P2,
P3,
P4,
P5   )     ::Gecode::Reflection::ActorRegistrar< P1,P2,P3,P4,P5 > GECODE_FRESH(r)

Register a propagator with five template arguments.

Definition at line 814 of file reflection.icc.

#define GECODE_REGISTER6 ( P1,
P2,
P3,
P4,
P5,
P6   )     ::Gecode::Reflection::ActorRegistrar< P1,P2,P3,P4,P5,P6 > GECODE_FRESH(r)

Register a propagator with six template arguments.

Definition at line 817 of file reflection.icc.


Function Documentation

Registry & Gecode::Reflection::registry ( void   ) 

The registry object.

Definition at line 65 of file reflection.cc.

template<class View0>
Support::Symbol Gecode::Reflection::mangle ( const Support::Symbol &  ati  )  [inline]

Mangle ati with type information.

Definition at line 897 of file reflection.icc.

template<class View0>
Support::Symbol Gecode::Reflection::mangle ( const Support::Symbol &  ati,
bool  b 
) [inline]

Mangle ati with type information.

Definition at line 907 of file reflection.icc.

template<class View0>
Support::Symbol Gecode::Reflection::mangle ( const Support::Symbol &  ati,
int  i 
) [inline]

Mangle ati with type information.

Definition at line 919 of file reflection.icc.

template<class View0>
Support::Symbol Gecode::Reflection::mangle ( const Support::Symbol &  ati,
unsigned int  i 
) [inline]

Mangle ati with type information.

Definition at line 931 of file reflection.icc.