|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sf.xbus.base.core.timeoutcall.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. ]
Field Summary | |
---|---|
protected XException |
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. |
XException |
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 XException 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 XException
XException
public java.lang.Object get() throws java.lang.InterruptedException, XException
java.lang.InterruptedException
- if current thread has been interrupted
java.lang.reflect.InvocationTargetException
- if the operation producing the value
encountered an exception.
XException
public java.lang.Object timedGet(long msecs) throws TimeoutException, java.lang.InterruptedException, XException
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.
XException
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 XException 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 |