Package ghidra.util.task
Class TimeoutTaskMonitor
- java.lang.Object
-
- ghidra.util.task.TimeoutTaskMonitor
-
- All Implemented Interfaces:
TaskMonitor
public class TimeoutTaskMonitor extends java.lang.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, callfinished().
-
-
Field Summary
-
Fields inherited from interface ghidra.util.task.TaskMonitor
DUMMY, NO_PROGRESS_VALUE
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddCancelledListener(CancelledListener listener)Add cancelled listener.voidaddIssueListener(IssueListener listener)Add an issue listener to this monitor.voidcancel()Cancel the task.voidcheckCanceled()Check to see if this monitor has been canceled.voidclearCanceled()Clear the cancellation so that this TaskMonitor may be reused.booleandidTimeout()Returns true if this monitor has timed-outvoidfinished()longgetMaximum()Returns the current maximum value for progress.longgetProgress()Returns the current progress value orTaskMonitor.NO_PROGRESS_VALUEif there is no value set.voidincrementProgress(long incrementAmount)A convenience method to increment the current progress by the given value.voidinitialize(long max)Initialized this TaskMonitor to the given max values.booleanisCancelEnabled()Returns true if cancel ability is enabledbooleanisCancelled()Returns true if the user has cancelled the operation.voidremoveCancelledListener(CancelledListener listener)Remove cancelled listener.voidremoveIssueListener(IssueListener listener)Removes an issue listener to this monitor.voidreportIssue(Issue issue)Notify that an issue occurred while processing.voidsetCancelEnabled(boolean enable)Set the enablement of the Cancel button.voidsetIndeterminate(boolean indeterminate)An indeterminate task monitor may choose to show an animation instead of updating progress.voidsetMaximum(long max)Set the progress maximum value.voidsetMessage(java.lang.String message)Sets a message giving additional information about the current progress.voidsetProgress(long value)Sets the current progress value.voidsetShowProgressValue(boolean showProgressValue)True (the default) signals to paint the progress information inside of the progress bar.voidsetTimeoutListener(Callback timeoutCallback)Sets a callback function that will be called if the timeout is reached.static TimeoutTaskMonitortimeoutIn(long timeout, java.util.concurrent.TimeUnit timeUnit)Creates a timeout task monitor that will be cancelled after the specified timeout.static TimeoutTaskMonitortimeoutIn(long timeout, java.util.concurrent.TimeUnit timeUnit, TaskMonitor monitor)Creates a timeout task monitor that will be cancelled after the specified timeout.
-
-
-
Method Detail
-
timeoutIn
public static TimeoutTaskMonitor timeoutIn(long timeout, java.util.concurrent.TimeUnit timeUnit)
Creates a timeout task monitor that will be cancelled after the specified timeout.- Parameters:
timeout- the timeout valuetimeUnit- the timeout time unit- Returns:
- the newly created monitor
-
timeoutIn
public static TimeoutTaskMonitor timeoutIn(long timeout, java.util.concurrent.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 valuetimeUnit- the timeout time unitmonitor- 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:TaskMonitorReturns true if the user has cancelled the operation.- Specified by:
isCancelledin interfaceTaskMonitor
-
setShowProgressValue
public void setShowProgressValue(boolean showProgressValue)
Description copied from interface:TaskMonitorTrue (the default) signals to paint the progress information inside of the progress bar.- Specified by:
setShowProgressValuein interfaceTaskMonitor- Parameters:
showProgressValue- true to paint the progress value; false to not
-
setMessage
public void setMessage(java.lang.String message)
Description copied from interface:TaskMonitorSets a message giving additional information about the current progress.- Specified by:
setMessagein interfaceTaskMonitor- Parameters:
message- more information
-
setProgress
public void setProgress(long value)
Description copied from interface:TaskMonitorSets the current progress value.- Specified by:
setProgressin interfaceTaskMonitor- Parameters:
value- progress value
-
initialize
public void initialize(long max)
Description copied from interface:TaskMonitorInitialized this TaskMonitor to the given max values. The current value of this monitor will be set to zero.- Specified by:
initializein interfaceTaskMonitor- Parameters:
max- maximum value for progress
-
setMaximum
public void setMaximum(long max)
Description copied from interface:TaskMonitorSet 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:
setMaximumin interfaceTaskMonitor- Parameters:
max- maximum value for progress
-
getMaximum
public long getMaximum()
Description copied from interface:TaskMonitorReturns the current maximum value for progress.- Specified by:
getMaximumin interfaceTaskMonitor- Returns:
-
setIndeterminate
public void setIndeterminate(boolean indeterminate)
Description copied from interface:TaskMonitorAn indeterminate task monitor may choose to show an animation instead of updating progress.- Specified by:
setIndeterminatein interfaceTaskMonitor
-
checkCanceled
public void checkCanceled() throws CancelledExceptionDescription copied from interface:TaskMonitorCheck to see if this monitor has been canceled.- Specified by:
checkCanceledin interfaceTaskMonitor- Throws:
CancelledException- if monitor has been cancelled.
-
incrementProgress
public void incrementProgress(long incrementAmount)
Description copied from interface:TaskMonitorA convenience method to increment the current progress by the given value.- Specified by:
incrementProgressin interfaceTaskMonitor- Parameters:
incrementAmount- The amount by which to increment the progress.
-
getProgress
public long getProgress()
Description copied from interface:TaskMonitorReturns the current progress value orTaskMonitor.NO_PROGRESS_VALUEif there is no value set.- Specified by:
getProgressin interfaceTaskMonitor- Returns:
- the current progress value or
TaskMonitor.NO_PROGRESS_VALUEif there is no value set.
-
reportIssue
public void reportIssue(Issue issue)
Description copied from interface:TaskMonitorNotify that an issue occurred while processing.- Specified by:
reportIssuein interfaceTaskMonitor- Parameters:
issue- the issue that was encountered
-
cancel
public void cancel()
Description copied from interface:TaskMonitorCancel the task.- Specified by:
cancelin interfaceTaskMonitor
-
addCancelledListener
public void addCancelledListener(CancelledListener listener)
Description copied from interface:TaskMonitorAdd cancelled listener.- Specified by:
addCancelledListenerin interfaceTaskMonitor
-
removeCancelledListener
public void removeCancelledListener(CancelledListener listener)
Description copied from interface:TaskMonitorRemove cancelled listener.- Specified by:
removeCancelledListenerin interfaceTaskMonitor
-
setCancelEnabled
public void setCancelEnabled(boolean enable)
Description copied from interface:TaskMonitorSet the enablement of the Cancel button.- Specified by:
setCancelEnabledin interfaceTaskMonitor- Parameters:
enable- true means to enable the cancel button
-
isCancelEnabled
public boolean isCancelEnabled()
Description copied from interface:TaskMonitorReturns true if cancel ability is enabled- Specified by:
isCancelEnabledin interfaceTaskMonitor
-
clearCanceled
public void clearCanceled()
Description copied from interface:TaskMonitorClear the cancellation so that this TaskMonitor may be reused.- Specified by:
clearCanceledin interfaceTaskMonitor
-
addIssueListener
public void addIssueListener(IssueListener listener)
Description copied from interface:TaskMonitorAdd an issue listener to this monitor.- Specified by:
addIssueListenerin interfaceTaskMonitor- Parameters:
listener- the listener
-
removeIssueListener
public void removeIssueListener(IssueListener listener)
Description copied from interface:TaskMonitorRemoves an issue listener to this monitor.- Specified by:
removeIssueListenerin interfaceTaskMonitor- Parameters:
listener- the listener
-
-