Interface ControllableAlgorithm

All Superinterfaces:
Algorithm, AlgorithmListener, java.util.EventListener
All Known Subinterfaces:
ComplementConstruction<I,​O>, ControllableGameSolver<T>, EditableAlgorithm
All Known Implementing Classes:
AbstractComplementConstruction, AbstractControllableAlgorithm, AbstractControllableGameSolver, AbstractEditableAlgorithm, AbstractSliceComplement, AbstractTranslator, BigStepSolver, CCJ09, CCJ09Translators.LTL2NBW, CCJ09Translators.QPTL2NBW, ClassicalBuchiSolver, ClassicComplement, Couvreur, CouvreurTranslators.LTL2NBW, CouvreurTranslators.LTL2NTGBW, CouvreurTranslators.QPTL2NBW, CouvreurTranslators.QPTL2NTGBW, DeterministicComplementConstruction, DeterminizationToDBWByDEK07, DeterminizationToWDBWByDEK07, DominionDecompositionSolver, ExtendedCouvreur, ExtendedCouvreurTranslators.LTL2NBW, ExtendedCouvreurTranslators.LTL2NTGBW, ExtendedCouvreurTranslators.QPTL2NBW, ExtendedCouvreurTranslators.QPTL2NTGBW, ExtendedGPVWPlusTranslators.LTL2LOSNBW, ExtendedGPVWPlusTranslators.LTL2LOSNGBW, ExtendedGPVWPlusTranslators.LTL2NBW, ExtendedGPVWPlusTranslators.LTL2NGBW, ExtendedGPVWPlusTranslators.QPTL2LOSNBW, ExtendedGPVWPlusTranslators.QPTL2LOSNGBW, ExtendedGPVWPlusTranslators.QPTL2NBW, ExtendedGPVWPlusTranslators.QPTL2NGBW, ExtendedGPVWTranslators.LTL2LOSNBW, ExtendedGPVWTranslators.LTL2LOSNGBW, ExtendedGPVWTranslators.LTL2NBW, ExtendedGPVWTranslators.LTL2NGBW, ExtendedGPVWTranslators.QPTL2LOSNBW, ExtendedGPVWTranslators.QPTL2LOSNGBW, ExtendedGPVWTranslators.QPTL2NBW, ExtendedGPVWTranslators.QPTL2NGBW, ExtendedLTL2AUTPlusTranslators.LTL2LOSNBW, ExtendedLTL2AUTPlusTranslators.LTL2LOSNGBW, ExtendedLTL2AUTPlusTranslators.LTL2NBW, ExtendedLTL2AUTPlusTranslators.LTL2NGBW, ExtendedLTL2AUTPlusTranslators.QPTL2LOSNBW, ExtendedLTL2AUTPlusTranslators.QPTL2LOSNGBW, ExtendedLTL2AUTPlusTranslators.QPTL2NBW, ExtendedLTL2AUTPlusTranslators.QPTL2NGBW, ExtendedLTL2AUTTranslators.LTL2LOSNBW, ExtendedLTL2AUTTranslators.LTL2LOSNGBW, ExtendedLTL2AUTTranslators.LTL2NBW, ExtendedLTL2AUTTranslators.LTL2NGBW, ExtendedLTL2AUTTranslators.QPTL2LOSNBW, ExtendedLTL2AUTTranslators.QPTL2LOSNGBW, ExtendedLTL2AUTTranslators.QPTL2NBW, ExtendedLTL2AUTTranslators.QPTL2NGBW, ExtendedLTL2Buchi, ExtendedLTL2BuchiTranslators.LTL2NBW, ExtendedLTL2BuchiTranslators.LTL2NTGBW, ExtendedLTL2BuchiTranslators.QPTL2NBW, ExtendedLTL2BuchiTranslators.QPTL2NTGBW, ExtendedModella, ExtendedModellaTranslators.LTL2LOSNBW, ExtendedModellaTranslators.LTL2LOSNGBW, ExtendedModellaTranslators.LTL2NBW, ExtendedModellaTranslators.LTL2NGBW, ExtendedModellaTranslators.QPTL2LOSNBW, ExtendedModellaTranslators.QPTL2LOSNGBW, ExtendedModellaTranslators.QPTL2NBW, ExtendedModellaTranslators.QPTL2NGBW, ExtendedOnTheFlyNGBWBuilder, GameSolverWrapper, HierarchyConstruction, IncTableauPlusTranslators.LTL2LOSNBW, IncTableauPlusTranslators.LTL2LOSNGBW, IncTableauPlusTranslators.LTL2NBW, IncTableauPlusTranslators.LTL2NGBW, IncTableauPlusTranslators.QPTL2LOSNBW, IncTableauPlusTranslators.QPTL2LOSNGBW, IncTableauPlusTranslators.QPTL2NBW, IncTableauPlusTranslators.QPTL2NGBW, IncTableauTranslators.LTL2LOSNBW, IncTableauTranslators.LTL2LOSNGBW, IncTableauTranslators.LTL2NBW, IncTableauTranslators.LTL2NGBW, IncTableauTranslators.QPTL2LOSNBW, IncTableauTranslators.QPTL2LOSNGBW, IncTableauTranslators.QPTL2NBW, IncTableauTranslators.QPTL2NGBW, KP02, KP02Translators.QPTL2NBW, KurshanConstruction, LTL2BA, LTL2BATranslators.LTL2NBW, LTL2BATranslators.LTL2NTGBW, LTL2BATranslators.LTL2VWAA, LTL2BATranslators.QPTL2NBW, LTL2BATranslators.QPTL2NTGBW, LTL2BATranslators.QPTL2VWAA, LTL2Buchi, LTL2BuchiTranslators.LTL2NBW, LTL2BuchiTranslators.LTL2NTGBW, LTL2BuchiTranslators.QPTL2NBW, LTL2BuchiTranslators.QPTL2NTGBW, LTL2LOSNGBWAdapter, LTL2TWVWAA, LTL2VWAA, McNaughtonZielonkaSolver, Modella, ModellaTranslators.LTL2LOSNBW, ModellaTranslators.LTL2LOSNGBW, ModellaTranslators.LTL2NBW, ModellaTranslators.LTL2NGBW, ModellaTranslators.QPTL2LOSNBW, ModellaTranslators.QPTL2LOSNGBW, ModellaTranslators.QPTL2NBW, ModellaTranslators.QPTL2NGBW, ModifiedSafraConstruction, MullerSchuppConstruction, ORETranslator, PitermanConstruction, PLTL2BA, PLTL2BATranslators.LTL2NBW, PLTL2BATranslators.LTL2NTGBW, PLTL2BATranslators.LTL2TWVWAA, PLTL2BATranslators.QPTL2NBW, PLTL2BATranslators.QPTL2NTGBW, PLTL2BATranslators.QPTL2TWVWAA, PMT02, PMT02Translators.ACTL2LOSNBW, PMT02Translators.ACTL2LOSNGBW, PMT02Translators.ACTL2NBW, PMT02Translators.ACTL2NGBW, ProgressMeasureConstruction, QPTL2ABWFuture, QPTL2BA, QPTL2BACanonical, QPTL2BAFuture, QPTL2BATranslators.CanonicalQPTL2TWACW, QPTL2BATranslators.FutureQPTL2ABW, QPTL2BATranslators.QPTL2NBW, QPTL2NBWByLTL2NBW, QPTL2NGBWByLTL2NGBW, QPTL2TWACWCanonical, RamseyConstruction, RankConstruction, RecursiveSolver, RETranslator, SafraConstruction, ScheweConstruction, SDBWConstruction, SliceConstruction, SliceKWConstruction, SliceVWConstruction, Subset, Tableau, TableauTranslators.LTL2LOSNBW, TableauTranslators.LTL2LOSNGBW, TableauTranslators.LTL2NBW, TableauTranslators.LTL2NGBW, TableauTranslators.QPTL2LOSNBW, TableauTranslators.QPTL2LOSNGBW, TableauTranslators.QPTL2NBW, TableauTranslators.QPTL2NGBW, TemporalTesterTranslators.LTL2LOSNBW, TemporalTesterTranslators.LTL2LOSNGBW, TemporalTesterTranslators.LTL2NBW, TemporalTesterTranslators.LTL2NGBW, TemporalTesterTranslators.QPTL2LOSNBW, TemporalTesterTranslators.QPTL2LOSNGBW, TemporalTesterTranslators.QPTL2NBW, TemporalTesterTranslators.QPTL2NGBW, TranslateByDivideAndConquer, TranslateToNBWByNGBW, TranslateToNGBWByLOSNGBW, WAAConstruction, WAPAConstruction

public interface ControllableAlgorithm
extends Algorithm
This interface provides methods for controlling this algorithm such as doing a step, doing a stage, pausing the execution, and so on.
Author:
Ming-Hsien Tsai
  • Method Details

    • setStages

      void setStages​(int i)
      Sets the maximal number of stages that can be performed by this algorithm.
      Parameters:
      i - the maximal number of stages
    • getStages

      int getStages()
      Returns the number of stages left for this algorithm to do. A negative value means that there is no restriction on the number of stages.
      Returns:
      the number of stages left for this algorithm to do
    • doStep

      void doStep()
      Performs a single step.
    • doStage

      void doStage()
      Performs a single stage.
    • doStart

      void doStart()
      Executes this algorithm step-by-step automatically. Between each step, there is a time interval set by the method setInterval.
      See Also:
      setInterval(double)
    • doPause

      void doPause()
      Pauses this algorithm.
    • setInterval

      void setInterval​(double interval)
      Sets the time interval in seconds between steps.
      Parameters:
      interval - the time interval between steps, measured in seconds
    • getInterval

      double getInterval()
      Returns the time interval in seconds between steps.
      Returns:
      the time interval between steps, measured in seconds
    • setStatus

      void setStatus​(ControllableStatus status)
      Sets the running status of this algorithm. The statuses Step , Stage, Start, and Stop should correspond to the methods doStep, doStage, doStart, and doPause respectively.
      Parameters:
      status - the status of this algorithm
    • getStatus

      ControllableStatus getStatus()
      Returns the running status of this algorithm.
      Returns:
      the status of this algorithm
    • addControllableListener

      void addControllableListener​(ControllableListener listener)
      Inserts a controllable listener.
      Parameters:
      listener - a controllable listener to be added
    • removeControllableListener

      void removeControllableListener​(ControllableListener listener)
      Removes a controllable listener.
      Parameters:
      listener - a controllable listener to be removed
    • setSynchronizationObject

      void setSynchronizationObject​(java.lang.Object obj)
      Sets the object for synchronization. When this algorithm is going to pause and wait for a notification, the method obj.wait() will be invoked. When this algorithm is going to continue its execution, the method obj.notify() will be invoked.
      Parameters:
      obj - the object for synchronization