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] |
