R - Type of the result for the future.public interface IgniteInternalFuture<R>
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> IgniteInternalFuture<T> |
chain(IgniteClosure<? super IgniteInternalFuture<R>,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.
|
R |
get()
Synchronously waits for completion of the computation and
returns computation result.
|
R |
get(long timeout)
Synchronously waits for completion of the computation for
up to the timeout specified and returns computation result.
|
R |
get(long timeout,
TimeUnit unit)
Synchronously waits for completion of the computation for
up to the timeout specified and returns computation result.
|
boolean |
isCancelled()
Returns
true if this computation was cancelled before it completed normally. |
boolean |
isDone()
Checks if computation is done.
|
void |
listenAsync(IgniteInClosure<? super IgniteInternalFuture<R>> lsnr)
Registers listener closure to be asynchronously notified whenever future completes.
|
long |
startTime()
Gets start time for this future.
|
void |
stopListenAsync(IgniteInClosure<? super IgniteInternalFuture<R>>... lsnr)
Removes given listeners 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.
|
R get() throws IgniteCheckedException
IgniteInterruptedCheckedException - Subclass of IgniteCheckedException thrown if the wait was interrupted.IgniteFutureCancelledCheckedException - Subclass of IgniteCheckedException throws if computation was cancelled.IgniteCheckedException - If computation failed.R get(long timeout) throws IgniteCheckedException
get(long, TimeUnit.MILLISECONDS).timeout - The maximum time to wait in milliseconds.IgniteInterruptedCheckedException - Subclass of IgniteCheckedException thrown if the wait was interrupted.IgniteFutureTimeoutCheckedException - Subclass of IgniteCheckedException thrown if the wait was timed out.IgniteFutureCancelledCheckedException - Subclass of IgniteCheckedException throws if computation was cancelled.IgniteCheckedException - If computation failed.R get(long timeout, TimeUnit unit) throws IgniteCheckedException
timeout - The maximum time to wait.unit - The time unit of the timeout argument.IgniteInterruptedCheckedException - Subclass of IgniteCheckedException thrown if the wait was interrupted.IgniteFutureTimeoutCheckedException - Subclass of IgniteCheckedException thrown if the wait was timed out.IgniteFutureCancelledCheckedException - Subclass of IgniteCheckedException throws if computation was cancelled.IgniteCheckedException - If computation failed.boolean cancel()
throws IgniteCheckedException
True if future was canceled (i.e. was not finished prior to this call).IgniteCheckedException - If cancellation failed.boolean isDone()
True if computation is done, false otherwise.boolean isCancelled()
true if this computation was cancelled before it completed normally.True if this computation was cancelled before it completed normally.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(@Nullable IgniteInClosure<? super IgniteInternalFuture<R>> lsnr)
lsnr - Listener closure to register. If not provided - this method is no-op.void stopListenAsync(@Nullable IgniteInClosure<? super IgniteInternalFuture<R>>... lsnr)
lsnr - Listeners to remove.<T> IgniteInternalFuture<T> chain(IgniteClosure<? super IgniteInternalFuture<R>,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