V
- Type of the result for the future.public interface IgniteFuture<V> extends Future<V>
Future
interface. It adds simplified exception handling,
functional programming support and ability to listen for future completion via functional
callback.Modifier and Type | Method and Description |
---|---|
boolean |
cancel()
Cancels this future.
|
<T> IgniteFuture<T> |
chain(IgniteClosure<? super IgniteFuture<V>,T> doneCb)
Make a chained future to convert result of this future (when complete) into a new format.
|
boolean |
concurrentNotify()
Gets value concurrent listener notification flag.
|
void |
concurrentNotify(boolean concurNotify)
Flag to turn on or off concurrent listener notification.
|
long |
duration()
Gets duration in milliseconds between start of the future and current time if future
is not finished, or between start and finish of this future.
|
V |
get()
Synchronously waits for completion of the computation and
returns computation result.
|
V |
get(long timeout)
Synchronously waits for completion of the computation for
up to the timeout specified and returns computation result.
|
V |
get(long timeout,
TimeUnit unit)
Synchronously waits for completion of the computation for
up to the timeout specified and returns computation result.
|
void |
listenAsync(IgniteInClosure<? super IgniteFuture<V>> lsnr)
Registers listener closure to be asynchronously notified whenever future completes.
|
long |
startTime()
Gets start time for this future.
|
void |
stopListenAsync(IgniteInClosure<? super IgniteFuture<V>> lsnr)
Removes given listener from the future.
|
boolean |
syncNotify()
Gets value of synchronous listener notification flag.
|
void |
syncNotify(boolean syncNotify)
Flag to turn on or off synchronous listener notification.
|
cancel, isCancelled, isDone
V get() throws IgniteException
get
in interface Future<V>
IgniteInterruptedException
- Subclass of IgniteException
thrown if the wait was interrupted.IgniteFutureCancelledException
- Subclass of IgniteException
thrown if computation was cancelled.IgniteException
- If computation failed.V get(long timeout) throws IgniteException
get(long, TimeUnit.MILLISECONDS)
.timeout
- The maximum time to wait in milliseconds.IgniteInterruptedException
- Subclass of IgniteException
thrown if the wait was interrupted.IgniteFutureCancelledException
- Subclass of IgniteException
thrown if computation was cancelled.IgniteFutureTimeoutException
- Subclass of IgniteException
thrown if the wait was timed out.IgniteException
- If computation failed.V get(long timeout, TimeUnit unit) throws IgniteException
get
in interface Future<V>
timeout
- The maximum time to wait.unit
- The time unit of the timeout
argument.IgniteInterruptedException
- Subclass of IgniteException
thrown if the wait was interrupted.IgniteFutureCancelledException
- Subclass of IgniteException
thrown if computation was cancelled.IgniteFutureTimeoutException
- Subclass of IgniteException
thrown if the wait was timed out.IgniteException
- If computation failed.boolean cancel() throws IgniteException
True
if future was canceled (i.e. was not finished prior to this call).IgniteException
- If cancellation failed.long startTime()
long duration()
void syncNotify(boolean syncNotify)
true
, then
upon future completion the notification may happen in the same thread that created
the future. This becomes especially important when adding listener to a future that
is already done
- if this flag is true
, then listener will be
immediately notified within the same thread.
Default value is false
. To change the default, set
IgniteSystemProperties.IGNITE_FUT_SYNC_NOTIFICATION
system property to true
.
syncNotify
- Flag to turn on or off synchronous listener notification.boolean syncNotify()
true
, then
upon future completion the notification may happen in the same thread that created
the future. This becomes especially important when adding listener to a future that
is already done
- if this flag is true
, then listener will be
immediately notified within the same thread.
Default value is false
. To change the default, set
IgniteSystemProperties.IGNITE_FUT_SYNC_NOTIFICATION
system property to true
.
void concurrentNotify(boolean concurNotify)
true
,
then all listeners will be notified concurrently by different threads; otherwise,
listeners will be notified one after another within one thread (depending on
syncNotify()
flag, these notifications may happen either in the same thread which
started the future, or in a different thread).
Default value is false
. To change the default, set
IgniteSystemProperties.IGNITE_FUT_CONCURRENT_NOTIFICATION
system property to true
.
concurNotify
- Flag to turn on or off concurrent listener notification.boolean concurrentNotify()
true
,
then all listeners will be notified concurrently by different threads; otherwise,
listeners will be notified one after another within one thread (depending on
syncNotify()
flag, these notifications may happen either in the same thread which
started the future, or in a different thread).
Default value is false
. To change the default, set
IgniteSystemProperties.IGNITE_FUT_CONCURRENT_NOTIFICATION
system property to true
.
void listenAsync(IgniteInClosure<? super IgniteFuture<V>> lsnr)
lsnr
- Listener closure to register. If not provided - this method is no-op.void stopListenAsync(IgniteInClosure<? super IgniteFuture<V>> lsnr)
lsnr
- Listener to remove.<T> IgniteFuture<T> chain(IgniteClosure<? super IgniteFuture<V>,T> doneCb)
doneCb
- Done callback that is applied to this future when it finishes to produce chained future result.
Follow @ApacheIgnite
Apache Ignite Fabric : ver. 1.0.0-RC1 Release Date : February 16 2015