deferred class ABSTRACT_BACKTRACKING_SEQUENCE
Summary
Abstract realisation of a sequence iterator for the ABSTRACT_BACKTRACKING
The ABSTRACT_BACKTRACKING uses the fields continuation to record the continuation path and calls the feature 'next_sequence' to let the current object choose how to continue the exploration.
Direct parents
Inherit list: ABSTRACT_BACKTRACKING_POOLABLE
Known children
Inherit list: ABSTRACT_BACKTRACKING_CUT_POINT, BACKTRACKING_SEQUENCE, BACKTRACKING_SEQUENCE_LIST
Overview
Features
{ABSTRACT_BACKTRACKING_POOL, ABSTRACT_BACKTRACKING}
  • previous: ABSTRACT_BACKTRACKING_SEQUENCE
    For the linked stack of sequences.
{ABSTRACT_BACKTRACKING}
{ANY}
  • release
    Called by ABSTRACT_BACKTRACKING to release current instance to the pool.
  • get_twin: ABSTRACT_BACKTRACKING_SEQUENCE
    Return a twin of current from the pool
  • pool: ABSTRACT_BACKTRACKING_POOL[ABSTRACT_BACKTRACKING_SEQUENCE]
    The pool that will record Current
{ABSTRACT_BACKTRACKING_POOL}
previous: ABSTRACT_BACKTRACKING_SEQUENCE
writable attribute
For the linked stack of sequences.
Managed by ABSTRACT_BACKTRACKING.
continuation: ABSTRACT_BACKTRACKING_SEQUENCE
writable attribute
The sequence to continue after a success in exploration of the current sequence.
Managed by ABSTRACT_BACKTRACKING.
set_continuation (value: ABSTRACT_BACKTRACKING_SEQUENCE)
effective procedure
ensure
next_sequence (explorer: ABSTRACT_BACKTRACKING)
deferred procedure
Called by ABSTRACT_BACKTRACKING to let the current object switch to the next state to explore.
Two actions must be performed by that feature:
  - make iteration actions and then call
     'pop_sequence' if this is the last state
     to be explored.
  - select the state to be evaluated or
     call 'continue' or call 'backtrack'.
require
  • is_on_top: Current = explorer.top_sequence
release
effective procedure
{ANY}
Called by ABSTRACT_BACKTRACKING to release current instance to the pool.
require
get_twin: ABSTRACT_BACKTRACKING_SEQUENCE
effective function
{ANY}
Return a twin of current from the pool
require ensure
pool: ABSTRACT_BACKTRACKING_POOL[ABSTRACT_BACKTRACKING_SEQUENCE]
deferred function
{ANY}
The pool that will record Current
Internal link used by the pool to chain its poolable items.
Technical note: to give more freedom for further usages of 'pool_link' it is not defined with type anchorage.
set_pool_link (other: ABSTRACT_BACKTRACKING_POOLABLE)
effective procedure
Set 'pool_link' to 'other'
ensure