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.