Class IgniteFutureImpl<V>
- java.lang.Object
-
- org.apache.ignite.internal.util.future.IgniteFutureImpl<V>
-
- All Implemented Interfaces:
IgniteFuture<V>
- Direct Known Subclasses:
IgniteCacheFutureImpl,IgniteFinishedFutureImpl
public class IgniteFutureImpl<V> extends Object implements IgniteFuture<V>
Implementation of public API future.
-
-
Field Summary
Fields Modifier and Type Field Description protected ExecutordefaultExecutorprotected IgniteInternalFuture<V>fut
-
Constructor Summary
Constructors Constructor Description IgniteFutureImpl(IgniteInternalFuture<V> fut)IgniteFutureImpl(IgniteInternalFuture<V> fut, @Nullable Executor defaultExecutor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancancel()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.<T> IgniteFuture<T>chainAsync(IgniteClosure<? super IgniteFuture<V>,T> doneCb, Executor exec)Make a chained future to convert result of this future (when complete) into a new format.protected <T> IgniteInternalFuture<T>chainInternal(IgniteClosure<? super IgniteFuture<V>,T> doneCb, @Nullable Executor exec)protected RuntimeExceptionconvertException(IgniteCheckedException e)Convert internal exception to public exception.Vget()Synchronously waits for completion of the computation and returns computation result.Vget(long timeout)Synchronously waits for completion of the computation for up to the timeout specified and returns computation result.Vget(long timeout, TimeUnit unit)Synchronously waits for completion of the computation for up to the timeout specified and returns computation result.IgniteInternalFuture<V>internalFuture()booleanisCancelled()Returnstrueif this task was cancelled before it completed normally.booleanisDone()Returnstrueif this task completed.voidlisten(IgniteInClosure<? super IgniteFuture<V>> lsnr)Registers a callback to be invoked when the future completes.voidlistenAsync(IgniteInClosure<? super IgniteFuture<V>> lsnr, Executor exec)Registers a callback to be invoked with the specified executor when the future completes.StringtoString()
-
-
-
Field Detail
-
fut
protected final IgniteInternalFuture<V> fut
-
defaultExecutor
protected final Executor defaultExecutor
-
-
Constructor Detail
-
IgniteFutureImpl
public IgniteFutureImpl(IgniteInternalFuture<V> fut)
- Parameters:
fut- Future.
-
IgniteFutureImpl
public IgniteFutureImpl(IgniteInternalFuture<V> fut, @Nullable @Nullable Executor defaultExecutor)
- Parameters:
fut- Future.defaultExecutor- Default executor.
-
-
Method Detail
-
internalFuture
public IgniteInternalFuture<V> internalFuture()
- Returns:
- Internal future.
-
isCancelled
public boolean isCancelled()
Returnstrueif this task was cancelled before it completed normally.- Specified by:
isCancelledin interfaceIgniteFuture<V>- Returns:
trueif this task was cancelled before it completed
-
isDone
public boolean isDone()
Returnstrueif this task completed.Completion may be due to normal termination, an exception, or cancellation - in all of these cases, this method will return
true.- Specified by:
isDonein interfaceIgniteFuture<V>- Returns:
trueif this task completed.
-
listen
public void listen(IgniteInClosure<? super IgniteFuture<V>> lsnr)
Registers a callback to be invoked when the future completes. If the future is already completed, callback will be invoked immediately in the current thread.- Specified by:
listenin interfaceIgniteFuture<V>- Parameters:
lsnr- Listener closure to register. Cannot benull.
-
listenAsync
public void listenAsync(IgniteInClosure<? super IgniteFuture<V>> lsnr, Executor exec)
Registers a callback to be invoked with the specified executor when the future completes.- Specified by:
listenAsyncin interfaceIgniteFuture<V>- Parameters:
lsnr- Listener closure to register. Cannot benull.exec- Executor to invoke the listener. Cannot benull.
-
chain
public <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. It is guaranteed that done callback will be called only ONCE.- Specified by:
chainin interfaceIgniteFuture<V>- Type Parameters:
T- Type of the converted result.- Parameters:
doneCb- Done callback that is applied to this future when it finishes to produce chained future result.- Returns:
- Chained future that finishes after this future completes and done callback is called.
-
chainAsync
public <T> IgniteFuture<T> chainAsync(IgniteClosure<? super IgniteFuture<V>,T> doneCb, Executor exec)
Make a chained future to convert result of this future (when complete) into a new format. It is guaranteed that done callback will be called only ONCE.- Specified by:
chainAsyncin interfaceIgniteFuture<V>- Type Parameters:
T- Type of the converted result.- Parameters:
doneCb- Done callback that is applied to this future when it finishes to produce chained future result.exec- Executor to run done callback. Cannot benull.- Returns:
- Chained future that finishes after this future completes and done callback is called.
-
chainInternal
protected <T> IgniteInternalFuture<T> chainInternal(IgniteClosure<? super IgniteFuture<V>,T> doneCb, @Nullable @Nullable Executor exec)
- Parameters:
doneCb- Done callback.- Returns:
- Internal future
-
cancel
public boolean cancel() throws IgniteExceptionCancels this future.- Specified by:
cancelin interfaceIgniteFuture<V>- Returns:
Trueif future was canceled (i.e. was not finished prior to this call).- Throws:
IgniteException- If cancellation failed.
-
get
public V get()
Synchronously waits for completion of the computation and returns computation result.- Specified by:
getin interfaceIgniteFuture<V>- Returns:
- Computation result.
-
get
public V get(long timeout)
Synchronously waits for completion of the computation for up to the timeout specified and returns computation result. This method is equivalent to callingget(long, TimeUnit.MILLISECONDS).- Specified by:
getin interfaceIgniteFuture<V>- Parameters:
timeout- The maximum time to wait in milliseconds.- Returns:
- Computation result.
-
get
public V get(long timeout, TimeUnit unit)
Synchronously waits for completion of the computation for up to the timeout specified and returns computation result.- Specified by:
getin interfaceIgniteFuture<V>- Parameters:
timeout- The maximum time to wait.unit- The time unit of thetimeoutargument.- Returns:
- Computation result.
-
convertException
protected RuntimeException convertException(IgniteCheckedException e)
Convert internal exception to public exception.- Parameters:
e- Internal exception.- Returns:
- Public excpetion.
-
-