EDU.oswego.cs.dl.util.concurrent
public class FutureResult extends Object
Sample Usage
class ImageRenderer { Image render(byte[] raw); }
class App {
Executor executor = ...
ImageRenderer renderer = ...
void display(byte[] rawimage) {
try {
FutureResult futureImage = new FutureResult();
Runnable command = futureImage.setter(new Callable() {
public Object call() { return renderer.render(rawImage); }
});
executor.execute(command);
drawBorders(); // do other things while executing
drawCaption();
drawImage((Image)(futureImage.get())); // use future
}
catch (InterruptedException ex) { return; }
catch (InvocationTargetException ex) { cleanup(); return; }
}
}
| Field Summary | |
|---|---|
| protected InvocationTargetException | exception_ the exception encountered by operation producing result * |
| protected boolean | ready_ Status -- true after first set * |
| protected Object | value_ The result of the operation * |
| Constructor Summary | |
|---|---|
| FutureResult()
Create an initially unset FutureResult
| |
| Method Summary | |
|---|---|
| void | clear()
Clear the value and exception and set to not-ready,
allowing this FutureResult to be reused. |
| protected Object | doGet() internal utility: either get the value or throw the exception * |
| Object | get()
Access the reference, waiting if necessary until it is ready. |
| InvocationTargetException | getException()
Get the exception, or null if there isn't one (yet).
|
| boolean | isReady()
Return whether the reference or exception have been set. |
| Object | peek()
Access the reference, even if not ready |
| void | set(Object newValue)
Set the reference, and signal that it is ready. |
| void | setException(Throwable ex)
Set the exception field, also setting ready status. |
| Runnable | setter(Callable function)
Return a Runnable object that, when run, will set the result value. |
| Object | timedGet(long msecs)
Wait at most msecs to access the reference. |
Returns: current value
Throws: InterruptedException if current thread has been interrupted InvocationTargetException if the operation producing the value encountered an exception.
Returns: the exception encountered by the operation setting the future, wrapped in an InvocationTargetException
Returns: true if has been set. else false
Returns: current value
Parameters: newValue The value that will be returned by a subsequent get();
Parameters: ex The exception. It will be reported out wrapped within an InvocationTargetException
Parameters: function - a Callable object whose result will be held by this FutureResult.
Returns: A Runnable object that, when run, will call the function and (eventually) set the result.
Returns: current value
Throws: TimeoutException if not ready after msecs InterruptedException if current thread has been interrupted InvocationTargetException if the operation producing the value encountered an exception.