|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.ObjectEDU.oswego.cs.dl.util.concurrent.FutureResult
A class maintaining a single reference variable serving as the result of an operation. The result cannot be accessed until it has been set.
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; }
}
}
[ Introduction to this package. ]
Executor| Field Summary | |
protected java.lang.reflect.InvocationTargetException |
exception_
the exception encountered by operation producing result |
protected boolean |
ready_
Status -- true after first set |
protected java.lang.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 java.lang.Object |
doGet()
internal utility: either get the value or throw the exception |
java.lang.Object |
get()
Access the reference, waiting if necessary until it is ready. |
java.lang.reflect.InvocationTargetException |
getException()
Get the exception, or null if there isn't one (yet). |
boolean |
isReady()
Return whether the reference or exception have been set. |
java.lang.Object |
peek()
Access the reference, even if not ready |
void |
set(java.lang.Object newValue)
Set the reference, and signal that it is ready. |
void |
setException(java.lang.Throwable ex)
Set the exception field, also setting ready status. |
java.lang.Runnable |
setter(Callable function)
Return a Runnable object that, when run, will set the result value. |
java.lang.Object |
timedGet(long msecs)
Wait at most msecs to access the reference. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
protected java.lang.Object value_
protected boolean ready_
protected java.lang.reflect.InvocationTargetException exception_
| Constructor Detail |
public FutureResult()
| Method Detail |
public java.lang.Runnable setter(Callable function)
function - - a Callable object whose result will be
held by this FutureResult.
protected java.lang.Object doGet()
throws java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException
public java.lang.Object get()
throws java.lang.InterruptedException,
java.lang.reflect.InvocationTargetException
java.lang.InterruptedException - if current thread has been interrupted
java.lang.reflect.InvocationTargetException - if the operation
producing the value encountered an exception.
public java.lang.Object timedGet(long msecs)
throws TimeoutException,
java.lang.InterruptedException,
java.lang.reflect.InvocationTargetException
TimeoutException - if not ready after msecs
java.lang.InterruptedException - if current thread has been interrupted
java.lang.reflect.InvocationTargetException - if the operation
producing the value encountered an exception.public void set(java.lang.Object newValue)
newValue - The value that will be returned by a subsequent get();public void setException(java.lang.Throwable ex)
ex - The exception. It will be reported out wrapped
within an InvocationTargetExceptionpublic java.lang.reflect.InvocationTargetException getException()
public boolean isReady()
public java.lang.Object peek()
public void clear()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||