Class TimeoutTaskMonitor

java.lang.Object
ghidra.util.task.TimeoutTaskMonitor
All Implemented Interfaces:
TaskMonitor

public class TimeoutTaskMonitor extends Object implements TaskMonitor
A task monitor that allows clients the ability to specify a timeout after which this monitor will be cancelled.

This monitor can wrap an existing monitor.

You can call setTimeoutListener(Callback) to get a notification that the monitor timed-out. In order to prevent this from firing after your work is finished normally, call finished().

  • Method Details

    • timeoutIn

      public static TimeoutTaskMonitor timeoutIn(long timeout, TimeUnit timeUnit)
      Creates a timeout task monitor that will be cancelled after the specified timeout.
      Parameters:
      timeout - the timeout value
      timeUnit - the timeout time unit
      Returns:
      the newly created monitor
    • timeoutIn

      public static TimeoutTaskMonitor timeoutIn(long timeout, TimeUnit timeUnit, TaskMonitor monitor)
      Creates a timeout task monitor that will be cancelled after the specified timeout. The created monitor wraps the given monitor, calling cancel on the given monitor when the timeout is reached. This method allows you to use an existing monitor while adding the timeout feature.
      Parameters:
      timeout - the timeout value
      timeUnit - the timeout time unit
      monitor - the monitor to wrap
      Returns:
      the newly created monitor
    • setTimeoutListener

      public void setTimeoutListener(Callback timeoutCallback)
      Sets a callback function that will be called if the timeout is reached.
      Parameters:
      timeoutCallback - the callback to call
    • didTimeout

      public boolean didTimeout()
      Returns true if this monitor has timed-out
      Returns:
      true if this monitor has timed-out
    • finished

      public void finished()
    • isCancelled

      public boolean isCancelled()
      Description copied from interface: TaskMonitor
      Returns true if the user has cancelled the operation
      Specified by:
      isCancelled in interface TaskMonitor
      Returns:
      true if the user has cancelled the operation
    • setShowProgressValue

      public void setShowProgressValue(boolean showProgressValue)
      Description copied from interface: TaskMonitor
      True (the default) signals to paint the progress information inside of the progress bar
      Specified by:
      setShowProgressValue in interface TaskMonitor
      Parameters:
      showProgressValue - true to paint the progress value; false to not
    • setMessage

      public void setMessage(String message)
      Description copied from interface: TaskMonitor
      Sets the message displayed on the task monitor
      Specified by:
      setMessage in interface TaskMonitor
      Parameters:
      message - the message to display
    • getMessage

      public String getMessage()
      Description copied from interface: TaskMonitor
      Gets the last set message of this monitor
      Specified by:
      getMessage in interface TaskMonitor
      Returns:
      the message
    • setProgress

      public void setProgress(long value)
      Description copied from interface: TaskMonitor
      Sets the current progress value
      Specified by:
      setProgress in interface TaskMonitor
      Parameters:
      value - progress value
    • initialize

      public void initialize(long max)
      Description copied from interface: TaskMonitor
      Initialized this TaskMonitor to the given max values. The current value of this monitor will be set to zero.
      Specified by:
      initialize in interface TaskMonitor
      Parameters:
      max - maximum value for progress
    • setMaximum

      public void setMaximum(long max)
      Description copied from interface: TaskMonitor
      Set the progress maximum value

      Note: setting this value will reset the progress to be the max if the progress is currently greater than the new new max value.

      Specified by:
      setMaximum in interface TaskMonitor
      Parameters:
      max - maximum value for progress
    • getMaximum

      public long getMaximum()
      Description copied from interface: TaskMonitor
      Returns the current maximum value for progress
      Specified by:
      getMaximum in interface TaskMonitor
      Returns:
      the maximum progress value
    • setIndeterminate

      public void setIndeterminate(boolean indeterminate)
      Description copied from interface: TaskMonitor
      An indeterminate task monitor may choose to show an animation instead of updating progress
      Specified by:
      setIndeterminate in interface TaskMonitor
      Parameters:
      indeterminate - true if indeterminate
    • isIndeterminate

      public boolean isIndeterminate()
      Description copied from interface: TaskMonitor
      Returns true if this monitor shows no progress
      Specified by:
      isIndeterminate in interface TaskMonitor
      Returns:
      true if this monitor shows no progress
    • checkCanceled

      public void checkCanceled() throws CancelledException
      Description copied from interface: TaskMonitor
      Check to see if this monitor has been cancelled
      Specified by:
      checkCanceled in interface TaskMonitor
      Throws:
      CancelledException - if monitor has been cancelled
    • incrementProgress

      public void incrementProgress(long incrementAmount)
      Description copied from interface: TaskMonitor
      Changes the progress value by the specified amount.
      Specified by:
      incrementProgress in interface TaskMonitor
      Parameters:
      incrementAmount - The amount by which to increment the progress
    • getProgress

      public long getProgress()
      Description copied from interface: TaskMonitor
      Returns the current progress value or TaskMonitor.NO_PROGRESS_VALUE if there is no value set
      Specified by:
      getProgress in interface TaskMonitor
      Returns:
      the current progress value or TaskMonitor.NO_PROGRESS_VALUE if there is no value set
    • cancel

      public void cancel()
      Description copied from interface: TaskMonitor
      Cancel the task
      Specified by:
      cancel in interface TaskMonitor
    • addCancelledListener

      public void addCancelledListener(CancelledListener listener)
      Description copied from interface: TaskMonitor
      Add cancelled listener
      Specified by:
      addCancelledListener in interface TaskMonitor
      Parameters:
      listener - the cancel listener
    • removeCancelledListener

      public void removeCancelledListener(CancelledListener listener)
      Description copied from interface: TaskMonitor
      Remove cancelled listener
      Specified by:
      removeCancelledListener in interface TaskMonitor
      Parameters:
      listener - the cancel listener
    • setCancelEnabled

      public void setCancelEnabled(boolean enable)
      Description copied from interface: TaskMonitor
      Set the enablement of the Cancel button
      Specified by:
      setCancelEnabled in interface TaskMonitor
      Parameters:
      enable - true means to enable the cancel button
    • isCancelEnabled

      public boolean isCancelEnabled()
      Description copied from interface: TaskMonitor
      Returns true if cancel ability is enabled
      Specified by:
      isCancelEnabled in interface TaskMonitor
      Returns:
      true if cancel ability is enabled
    • clearCanceled

      public void clearCanceled()
      Description copied from interface: TaskMonitor
      Clear the cancellation so that this TaskMonitor may be reused
      Specified by:
      clearCanceled in interface TaskMonitor