| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.logicalcobwebs.concurrent.FutureResult
public class 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 | ||||||||