Interface Subsystem

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void cancel()
      Stop this Subsystem's background task.
      void defineResources()
      Define the set of resourceLocks required for this Subsystem's task.
      java.util.concurrent.Future<?> getJob()
      Get the job representing the execution of this Subsystem's task.
      boolean isCancelled()
      Check if this subsystem's task has been cancelled.
      boolean isDone()
      Check if this subsystem's task has been completed.
      boolean isScheduled()
      Check if this subsystem's task is scheduled to execute.
      boolean isStarted()
      Check if this subsystem's task has been started.
      void require​(java.lang.Object resource)
      Define a resource which this Subsystem requires exclusive access to while its task runs.
      void start()
      Start (or restart) this Subsystem's background task.
      void task()
      The background task to run.
    • Method Detail

      • require

        void require​(java.lang.Object resource)
        Define a resource which this Subsystem requires exclusive access to while its task runs.
        Parameters:
        resource - the required resource.
      • isCancelled

        boolean isCancelled()
        Check if this subsystem's task has been cancelled.
        Returns:
        true iff cancelled.
      • isStarted

        boolean isStarted()
        Check if this subsystem's task has been started.
        Returns:
        true iff started.
      • isScheduled

        boolean isScheduled()
        Check if this subsystem's task is scheduled to execute.
        Returns:
        true iff scheduled.
      • isDone

        boolean isDone()
        Check if this subsystem's task has been completed. This is never true for repeating subsystems, which are always "Not Started", "Scheduled", or "Cancelled".
        Returns:
        true iff completed.
      • cancel

        void cancel()
        Stop this Subsystem's background task. If this is a one-shot subsystem, the task will never be run if it has not already started. If it has already started, the task may be cancelled partway through execution. If it has already completed, this has no effect. For repeating subsystems, tasks in progress may be cancelled partway through execution, and in any case, future tasks will no longer be run.
      • start

        void start()
        Start (or restart) this Subsystem's background task.
      • task

        void task()
           throws java.lang.Exception
        The background task to run.
        Throws:
        java.lang.Exception - in case the defined task throws any Exceptions
      • getJob

        java.util.concurrent.Future<?> getJob()
        Get the job representing the execution of this Subsystem's task.
        Returns:
        the Future job.