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, isDoneV 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
Ignite Fabric : ver. 1.0.0-RC1 Release Date : February 17 2015