Package ghidra.util.task

# 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()`.

- ## Field Summary

  ### Fields inherited from interface ghidra.util.task.TaskMonitor

  `DUMMY, NO_PROGRESS_VALUE`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addCancelledListener(CancelledListener listener)`
  Add cancelled listener
  `void`
  `cancel()`
  Cancel the task
  `void`
  `checkCanceled()`
  Check to see if this monitor has been cancelled
  `void`
  `clearCanceled()`
  Clear the cancellation so that this TaskMonitor may be reused
  `boolean`
  `didTimeout()`
  Returns true if this monitor has timed-out
  `void`
  `finished()`
  `long`
  `getMaximum()`
  Returns the current maximum value for progress
  `String`
  `getMessage()`
  Gets the last set message of this monitor
  `long`
  `getProgress()`
  Returns the current progress value or `TaskMonitor.NO_PROGRESS_VALUE` if there is no value set
  `void`
  `incrementProgress(long incrementAmount)`
  Changes the progress value by the specified amount.
  `void`
  `initialize(long max)`
  Initialized this TaskMonitor to the given max values.
  `boolean`
  `isCancelEnabled()`
  Returns true if cancel ability is enabled
  `boolean`
  `isCancelled()`
  Returns true if the user has cancelled the operation
  `boolean`
  `isIndeterminate()`
  Returns true if this monitor shows no progress
  `void`
  `removeCancelledListener(CancelledListener listener)`
  Remove cancelled listener
  `void`
  `setCancelEnabled(boolean enable)`
  Set the enablement of the Cancel button
  `void`
  `setIndeterminate(boolean indeterminate)`
  An indeterminate task monitor may choose to show an animation instead of updating progress
  `void`
  `setMaximum(long max)`
  Set the progress maximum value
  `void`
  `setMessage(String message)`
  Sets the message displayed on the task monitor
  `void`
  `setProgress(long value)`
  Sets the current progress value
  `void`
  `setShowProgressValue(boolean showProgressValue)`
  True (the default) signals to paint the progress information inside of the progress bar
  `void`
  `setTimeoutListener(Callback timeoutCallback)`
  Sets a callback function that will be called if the timeout is reached.
  `static TimeoutTaskMonitor`
  `timeoutIn(long timeout, TimeUnit timeUnit)`
  Creates a timeout task monitor that will be cancelled after the specified timeout.
  `static TimeoutTaskMonitor`
  `timeoutIn(long timeout, TimeUnit timeUnit, TaskMonitor monitor)`
  Creates a timeout task monitor that will be cancelled after the specified timeout.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface ghidra.util.task.TaskMonitor

  `checkCancelled, clearCancelled, increment, increment, incrementProgress, initialize`

- ## 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`