#include <constraint.h>
Public Member Functions | |
virtual bool | handleMessages ()=0 |
MessageHandler () | |
virtual uint32 | priority () const |
Shall return a value representing the priority of this propagator. | |
virtual bool | propagateFixpoint (Solver &, PostPropagator *) |
Shall enqueue and propagate new assignments implied by this propagator. |
Definition at line 359 of file constraint.h.
Definition at line 54 of file constraint.cpp.
virtual bool Clasp::MessageHandler::handleMessages | ( | ) | [pure virtual] |
Implemented in Clasp::SequentialSolve::InterruptHandler.
virtual uint32 Clasp::MessageHandler::priority | ( | ) | const [inline, virtual] |
Shall return a value representing the priority of this propagator.
The priority is used to order sequences of post propagators and to classify post propagators w.r.t the classes: class_simple and class_general.
Implements Clasp::PostPropagator.
Definition at line 363 of file constraint.h.
virtual bool Clasp::MessageHandler::propagateFixpoint | ( | Solver & | s, |
PostPropagator * | ctx | ||
) | [inline, virtual] |
Shall enqueue and propagate new assignments implied by this propagator.
This function shall enqueue and propagate all assignments currently implied by this propagator until a fixpoint is reached w.r.t this post propagator or a conflict is detected.
s | The solver in which this post propagator is used. |
ctx | The post propagator from which this post propagator is called or 0 if no other post propagator is currently active. |
Typically, propagateFixpoint() should implemet a loop like this:
for (;;) { if (!assign_newly_implied_literals(s)){ return false; } if (s.queueSize() == 0) { return true; } if (!s.propagateUntil(this)) { return false; } }
Implements Clasp::PostPropagator.
Reimplemented in Clasp::SequentialSolve::InterruptHandler.
Definition at line 364 of file constraint.h.