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; } } }
Executor
Modifier and Type | Field and Description |
---|---|
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 and Description |
---|
FutureResult()
Create an initially unset FutureResult
|
Modifier and Type | Method and Description |
---|---|
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.
|
protected Object value_
protected boolean ready_
protected InvocationTargetException exception_
public Runnable setter(Callable function)
function
- - a Callable object whose result will be
held by this FutureResult.protected Object doGet() throws InvocationTargetException
InvocationTargetException
public Object get() throws InterruptedException, InvocationTargetException
InterruptedException
- if current thread has been interruptedInvocationTargetException
- if the operation
producing the value encountered an exception.public Object timedGet(long msecs) throws TimeoutException, InterruptedException, InvocationTargetException
TimeoutException
- if not ready after msecsInterruptedException
- if current thread has been interruptedInvocationTargetException
- if the operation
producing the value encountered an exception.public void set(Object newValue)
newValue
- The value that will be returned by a subsequent get();public void setException(Throwable ex)
ex
- The exception. It will be reported out wrapped
within an InvocationTargetExceptionpublic InvocationTargetException getException()
public boolean isReady()
public Object peek()
public void clear()
Copyright © 2012-2013 Adele Team | LIG. All Rights Reserved.