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 | ( | P | ) | ::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) |
#define GECODE_REGISTER3 | ( | P1, | |||
P2, | |||||
P3 | ) | ::Gecode::Reflection::ActorRegistrar< P1,P2,P3 > GECODE_FRESH(r) |
#define GECODE_REGISTER4 | ( | P1, | |||
P2, | |||||
P3, | |||||
P4 | ) | ::Gecode::Reflection::ActorRegistrar< P1,P2,P3,P4 > GECODE_FRESH(r) |
#define GECODE_REGISTER5 | ( | P1, | |||
P2, | |||||
P3, | |||||
P4, | |||||
P5 | ) | ::Gecode::Reflection::ActorRegistrar< P1,P2,P3,P4,P5 > GECODE_FRESH(r) |
#define GECODE_REGISTER6 | ( | P1, | |||
P2, | |||||
P3, | |||||
P4, | |||||
P5, | |||||
P6 | ) | ::Gecode::Reflection::ActorRegistrar< P1,P2,P3,P4,P5,P6 > GECODE_FRESH(r) |
Function Documentation
Registry & Gecode::Reflection::registry | ( | void | ) |
template<class View0>
Support::Symbol Gecode::Reflection::mangle | ( | const Support::Symbol & | ati | ) | [inline] |
template<class View0>
Support::Symbol Gecode::Reflection::mangle | ( | const Support::Symbol & | ati, | |
bool | b | |||
) | [inline] |
template<class View0>
Support::Symbol Gecode::Reflection::mangle | ( | const Support::Symbol & | ati, | |
int | i | |||
) | [inline] |
template<class View0>
Support::Symbol Gecode::Reflection::mangle | ( | const Support::Symbol & | ati, | |
unsigned int | i | |||
) | [inline] |