C++ Reference
C++ Reference: Routing
Detailed Description
Interval variables are often used in scheduling.
The main characteristics of an IntervalVar are the start position, duration, and end date. All these characteristics can be queried and set, and demons can be posted on their modifications.
An important aspect is optionality: an IntervalVar can be performed or not. If unperformed, then it simply does not exist, and its characteristics cannot be accessed any more. An interval var is automatically marked as unperformed when it is not consistent anymore (start greater than end, duration < 0...)
Definition at line 4527 of file constraint_solver.h.
Public Member Functions | |
| IntervalVar (Solver *const solver, const std::string &name) | |
| ~IntervalVar () override | |
| virtual int64_t | StartMin () const =0 |
| These methods query, set, and watch the start position of the interval var. More... | |
| virtual int64_t | StartMax () const =0 |
| virtual void | SetStartMin (int64_t m)=0 |
| virtual void | SetStartMax (int64_t m)=0 |
| virtual void | SetStartRange (int64_t mi, int64_t ma)=0 |
| virtual int64_t | OldStartMin () const =0 |
| virtual int64_t | OldStartMax () const =0 |
| virtual void | WhenStartRange (Demon *const d)=0 |
| void | WhenStartRange (Solver::Closure closure) |
| void | WhenStartRange (Solver::Action action) |
| virtual void | WhenStartBound (Demon *const d)=0 |
| void | WhenStartBound (Solver::Closure closure) |
| void | WhenStartBound (Solver::Action action) |
| virtual int64_t | DurationMin () const =0 |
| These methods query, set, and watch the duration of the interval var. More... | |
| virtual int64_t | DurationMax () const =0 |
| virtual void | SetDurationMin (int64_t m)=0 |
| virtual void | SetDurationMax (int64_t m)=0 |
| virtual void | SetDurationRange (int64_t mi, int64_t ma)=0 |
| virtual int64_t | OldDurationMin () const =0 |
| virtual int64_t | OldDurationMax () const =0 |
| virtual void | WhenDurationRange (Demon *const d)=0 |
| void | WhenDurationRange (Solver::Closure closure) |
| void | WhenDurationRange (Solver::Action action) |
| virtual void | WhenDurationBound (Demon *const d)=0 |
| void | WhenDurationBound (Solver::Closure closure) |
| void | WhenDurationBound (Solver::Action action) |
| virtual int64_t | EndMin () const =0 |
| These methods query, set, and watch the end position of the interval var. More... | |
| virtual int64_t | EndMax () const =0 |
| virtual void | SetEndMin (int64_t m)=0 |
| virtual void | SetEndMax (int64_t m)=0 |
| virtual void | SetEndRange (int64_t mi, int64_t ma)=0 |
| virtual int64_t | OldEndMin () const =0 |
| virtual int64_t | OldEndMax () const =0 |
| virtual void | WhenEndRange (Demon *const d)=0 |
| void | WhenEndRange (Solver::Closure closure) |
| void | WhenEndRange (Solver::Action action) |
| virtual void | WhenEndBound (Demon *const d)=0 |
| void | WhenEndBound (Solver::Closure closure) |
| void | WhenEndBound (Solver::Action action) |
| virtual bool | MustBePerformed () const =0 |
| These methods query, set, and watch the performed status of the interval var. More... | |
| virtual bool | MayBePerformed () const =0 |
| bool | CannotBePerformed () const |
| bool | IsPerformedBound () const |
| virtual void | SetPerformed (bool val)=0 |
| virtual bool | WasPerformedBound () const =0 |
| virtual void | WhenPerformedBound (Demon *const d)=0 |
| void | WhenPerformedBound (Solver::Closure closure) |
| void | WhenPerformedBound (Solver::Action action) |
| void | WhenAnything (Demon *const d) |
| Attaches a demon awakened when anything about this interval changes. More... | |
| void | WhenAnything (Solver::Closure closure) |
| Attaches a closure awakened when anything about this interval changes. More... | |
| void | WhenAnything (Solver::Action action) |
| Attaches an action awakened when anything about this interval changes. More... | |
| virtual IntExpr * | StartExpr ()=0 |
| These methods create expressions encapsulating the start, end and duration of the interval var. More... | |
| virtual IntExpr * | DurationExpr ()=0 |
| virtual IntExpr * | EndExpr ()=0 |
| virtual IntExpr * | PerformedExpr ()=0 |
| virtual IntExpr * | SafeStartExpr (int64_t unperformed_value)=0 |
| These methods create expressions encapsulating the start, end and duration of the interval var. More... | |
| virtual IntExpr * | SafeDurationExpr (int64_t unperformed_value)=0 |
| virtual IntExpr * | SafeEndExpr (int64_t unperformed_value)=0 |
| virtual void | Accept (ModelVisitor *const visitor) const =0 |
| Accepts the given visitor. More... | |
| std::string | DebugString () const override |
| Solver * | solver () const |
| void | FreezeQueue () |
| This method freezes the propagation queue. More... | |
| void | UnfreezeQueue () |
| This method unfreezes the propagation queue. More... | |
| void | EnqueueDelayedDemon (Demon *const d) |
| This method pushes the demon onto the propagation queue. More... | |
| void | EnqueueVar (Demon *const d) |
| void | ExecuteAll (const SimpleRevFIFO< Demon * > &demons) |
| void | EnqueueAll (const SimpleRevFIFO< Demon * > &demons) |
| void | set_action_on_fail (Solver::Action a) |
| void | reset_action_on_fail () |
| This method clears the failure callback. More... | |
| void | set_variable_to_clean_on_fail (IntVar *v) |
| Shortcut for variable cleaner. More... | |
| virtual std::string | name () const |
| Object naming. More... | |
| void | set_name (const std::string &name) |
| bool | HasName () const |
| Returns whether the object has been named or not. More... | |
| virtual std::string | BaseName () const |
| Returns a base name for automatic naming. More... | |
Static Public Attributes | |
| static const int64_t | kMinValidValue |
| The smallest acceptable value to be returned by StartMin() More... | |
| static const int64_t | kMaxValidValue |
| The largest acceptable value to be returned by EndMax() More... | |
Constructor & Destructor Documentation
◆ IntervalVar()
|
inline |
Definition at line 4533 of file constraint_solver.h.
◆ ~IntervalVar()
|
inlineoverride |
Definition at line 4537 of file constraint_solver.h.
Member Function Documentation
◆ Accept()
|
pure virtual |
Accepts the given visitor.
◆ BaseName()
|
virtualinherited |
Returns a base name for automatic naming.
Reimplemented in BooleanVar.
◆ CannotBePerformed()
|
inline |
Definition at line 4625 of file constraint_solver.h.
◆ DebugString()
|
inlineoverridevirtualinherited |
Reimplemented from BaseObject.
Reimplemented in GlobalVehicleBreaksConstraint, BooleanVar, LightIntIntFunctionElementCt< F >, LightIntFunctionElementCt< F >, Pack, Assignment, SequenceVar, and Constraint.
Definition at line 3267 of file constraint_solver.h.
◆ DurationExpr()
|
pure virtual |
◆ DurationMax()
|
pure virtual |
◆ DurationMin()
|
pure virtual |
These methods query, set, and watch the duration of the interval var.
◆ EndExpr()
|
pure virtual |
◆ EndMax()
|
pure virtual |
◆ EndMin()
|
pure virtual |
These methods query, set, and watch the end position of the interval var.
◆ EnqueueAll()
|
inherited |
◆ EnqueueDelayedDemon()
|
inlineinherited |
This method pushes the demon onto the propagation queue.
It will be processed directly if the queue is empty. It will be enqueued according to its priority otherwise.
Definition at line 3287 of file constraint_solver.h.
◆ EnqueueVar()
|
inlineinherited |
Definition at line 3288 of file constraint_solver.h.
◆ ExecuteAll()
|
inherited |
◆ FreezeQueue()
|
inlineinherited |
This method freezes the propagation queue.
It is useful when you need to apply multiple modifications at once.
Definition at line 3278 of file constraint_solver.h.
◆ HasName()
|
inherited |
Returns whether the object has been named or not.
◆ IsPerformedBound()
|
inline |
Definition at line 4626 of file constraint_solver.h.
◆ MayBePerformed()
|
pure virtual |
◆ MustBePerformed()
|
pure virtual |
These methods query, set, and watch the performed status of the interval var.
◆ name()
|
virtualinherited |
Object naming.
◆ OldDurationMax()
|
pure virtual |
◆ OldDurationMin()
|
pure virtual |
◆ OldEndMax()
|
pure virtual |
◆ OldEndMin()
|
pure virtual |
◆ OldStartMax()
|
pure virtual |
◆ OldStartMin()
|
pure virtual |
◆ PerformedExpr()
|
pure virtual |
◆ reset_action_on_fail()
|
inlineinherited |
This method clears the failure callback.
Definition at line 3301 of file constraint_solver.h.
◆ SafeDurationExpr()
|
pure virtual |
◆ SafeEndExpr()
|
pure virtual |
◆ SafeStartExpr()
|
pure virtual |
These methods create expressions encapsulating the start, end and duration of the interval var.
If the interval var is unperformed, they will return the unperformed_value.
◆ set_action_on_fail()
|
inlineinherited |
Definition at line 3295 of file constraint_solver.h.
◆ set_name()
|
inherited |
◆ set_variable_to_clean_on_fail()
|
inlineinherited |
Shortcut for variable cleaner.
Definition at line 3304 of file constraint_solver.h.
◆ SetDurationMax()
|
pure virtual |
◆ SetDurationMin()
|
pure virtual |
◆ SetDurationRange()
|
pure virtual |
◆ SetEndMax()
|
pure virtual |
◆ SetEndMin()
|
pure virtual |
◆ SetEndRange()
|
pure virtual |
◆ SetPerformed()
|
pure virtual |
◆ SetStartMax()
|
pure virtual |
◆ SetStartMin()
|
pure virtual |
◆ SetStartRange()
|
pure virtual |
◆ solver()
|
inlineinherited |
Definition at line 3274 of file constraint_solver.h.
◆ StartExpr()
|
pure virtual |
These methods create expressions encapsulating the start, end and duration of the interval var.
Please note that these must not be used if the interval var is unperformed.
◆ StartMax()
|
pure virtual |
◆ StartMin()
|
pure virtual |
These methods query, set, and watch the start position of the interval var.
◆ UnfreezeQueue()
|
inlineinherited |
This method unfreezes the propagation queue.
All modifications that happened when the queue was frozen will be processed.
Definition at line 3282 of file constraint_solver.h.
◆ WasPerformedBound()
|
pure virtual |
◆ WhenAnything() [1/3]
| void WhenAnything | ( | Demon *const | d | ) |
Attaches a demon awakened when anything about this interval changes.
◆ WhenAnything() [2/3]
|
inline |
Attaches an action awakened when anything about this interval changes.
Definition at line 4649 of file constraint_solver.h.
◆ WhenAnything() [3/3]
|
inline |
Attaches a closure awakened when anything about this interval changes.
Definition at line 4644 of file constraint_solver.h.
◆ WhenDurationBound() [1/3]
|
pure virtual |
◆ WhenDurationBound() [2/3]
|
inline |
Definition at line 4589 of file constraint_solver.h.
◆ WhenDurationBound() [3/3]
|
inline |
Definition at line 4585 of file constraint_solver.h.
◆ WhenDurationRange() [1/3]
|
pure virtual |
◆ WhenDurationRange() [2/3]
|
inline |
Definition at line 4580 of file constraint_solver.h.
◆ WhenDurationRange() [3/3]
|
inline |
Definition at line 4576 of file constraint_solver.h.
◆ WhenEndBound() [1/3]
|
pure virtual |
◆ WhenEndBound() [2/3]
|
inline |
Definition at line 4616 of file constraint_solver.h.
◆ WhenEndBound() [3/3]
|
inline |
Definition at line 4612 of file constraint_solver.h.
◆ WhenEndRange() [1/3]
|
pure virtual |
◆ WhenEndRange() [2/3]
|
inline |
Definition at line 4607 of file constraint_solver.h.
◆ WhenEndRange() [3/3]
|
inline |
Definition at line 4603 of file constraint_solver.h.
◆ WhenPerformedBound() [1/3]
|
pure virtual |
◆ WhenPerformedBound() [2/3]
|
inline |
Definition at line 4636 of file constraint_solver.h.
◆ WhenPerformedBound() [3/3]
|
inline |
Definition at line 4632 of file constraint_solver.h.
◆ WhenStartBound() [1/3]
|
pure virtual |
◆ WhenStartBound() [2/3]
|
inline |
Definition at line 4562 of file constraint_solver.h.
◆ WhenStartBound() [3/3]
|
inline |
Definition at line 4558 of file constraint_solver.h.
◆ WhenStartRange() [1/3]
|
pure virtual |
◆ WhenStartRange() [2/3]
|
inline |
Definition at line 4553 of file constraint_solver.h.
◆ WhenStartRange() [3/3]
|
inline |
Definition at line 4549 of file constraint_solver.h.
Member Data Documentation
◆ kMaxValidValue
|
static |
The largest acceptable value to be returned by EndMax()
Definition at line 4532 of file constraint_solver.h.
◆ kMinValidValue
|
static |
The smallest acceptable value to be returned by StartMin()
Definition at line 4530 of file constraint_solver.h.
The documentation for this class was generated from the following file: