Interface AsyncFuture<T>
-
- All Superinterfaces:
java.util.concurrent.CompletionStage<T>,java.util.concurrent.Future<T>
- All Known Subinterfaces:
AsyncPromise<T>,RunnableScheduledFuture<V>,ScheduledFuture<V>
- All Known Implementing Classes:
AbstractAsyncFuture,CancelledAsyncFuture,DefaultAsyncFuture,DefaultAsyncFutureTask,DefaultCollectingAsyncFuture,FailedAsyncFuture,SuccessAsyncFuture
public interface AsyncFuture<T> extends java.util.concurrent.Future<T>, java.util.concurrent.CompletionStage<T>AFuturewhich has very netty-style semantics whereAsyncFutureListenercan be added to the future to be executed upon condition of Success or Failure has been satisfied. SeeDefaultAsyncFuture. See alsoDefaultAsyncFutureTask
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static classAsyncFuture.Status
-
Field Summary
Fields Modifier and Type Field Description static AsyncPromise<?>NULL_SUCCESS
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Modifier and Type Method Description AsyncFuture<T>addListener(AsyncFutureListener<T> listener)Adds the specified listener to this future.AsyncFuture<T>addListener(AsyncPromise<T> listener)Adds the specified future as a listener to this future.AsyncFuture<T>await()Waits for this future to be completed.booleanawait(long timeout, java.util.concurrent.TimeUnit unit)Waits for this future to be completed within the specified time limit.AsyncFuture<T>awaitUninterruptibly()Waits for this future to be completed without interruption.booleanawaitUninterruptibly(long timeout, java.util.concurrent.TimeUnit unit)Waits for this future to be completed within the specified time limit without interruption.static <T> AsyncPromise<T>cancelled()Obtain an instance of an AsyncFuture which is in the Cancelled state.static <T> AsyncFuture<java.util.List<T>>collect(java.util.List<AsyncFuture<java.util.List<T>>> futuresList, boolean cancellable)static <T> AsyncPromise<T>deferred(boolean cancellable)Create a new default deferred future.static <T> AsyncPromise<T>failed(java.lang.Throwable exception)Create a new failed future.java.lang.ThrowablegetCause()Returns the cause of the failed I/O operation if the I/O operation has failed.TgetNow()Non-blocking variant ofFuture.get()static AsyncFuture.StatusgetStatus(AsyncFuture<?> future)booleanisSuccess()Returnstrueif and only if the I/O operation was completed successfully.static <T> AsyncFuture<T>of(AsyncFuture<T> stage, boolean cancellable)static <T> AsyncFuture<T>of(java.util.concurrent.CompletionStage<T> stage, boolean cancellable)static <T,V extends T>
AsyncPromise<T>success(V value)Create a new success future.-
Methods inherited from interface java.util.concurrent.CompletionStage
acceptEither, acceptEitherAsync, acceptEitherAsync, applyToEither, applyToEitherAsync, applyToEitherAsync, exceptionally, handle, handleAsync, handleAsync, runAfterBoth, runAfterBothAsync, runAfterBothAsync, runAfterEither, runAfterEitherAsync, runAfterEitherAsync, thenAccept, thenAcceptAsync, thenAcceptAsync, thenAcceptBoth, thenAcceptBothAsync, thenAcceptBothAsync, thenApply, thenApplyAsync, thenApplyAsync, thenCombine, thenCombineAsync, thenCombineAsync, thenCompose, thenComposeAsync, thenComposeAsync, thenRun, thenRunAsync, thenRunAsync, toCompletableFuture, whenComplete, whenCompleteAsync, whenCompleteAsync
-
-
-
-
Field Detail
-
NULL_SUCCESS
static final AsyncPromise<?> NULL_SUCCESS
-
-
Method Detail
-
getNow
T getNow()
Non-blocking variant ofFuture.get()- Returns:
- value or
null
-
isSuccess
boolean isSuccess()
Returnstrueif and only if the I/O operation was completed successfully.
-
getCause
java.lang.Throwable getCause()
Returns the cause of the failed I/O operation if the I/O operation has failed.- Returns:
- the cause of the failure.
nullif succeeded or this future is not completed yet.
-
addListener
@Nonnull AsyncFuture<T> addListener(AsyncFutureListener<T> listener)
Adds the specified listener to this future. The specified listener is notified when this future is done. If this future is already completed, the specified listener is notified immediately.- Returns:
thisto permit chaining of operations.
-
addListener
@Nonnull AsyncFuture<T> addListener(AsyncPromise<T> listener)
Adds the specified future as a listener to this future. The specified future is notified when this future is done. If this future is already completed, the specified future is notified immediately.- Parameters:
listener-- Returns:
thisto permit chaining of operations.
-
await
@Nonnull AsyncFuture<T> await() throws java.lang.InterruptedException
Waits for this future to be completed.- Throws:
java.lang.InterruptedException- if the current thread was interrupted
-
awaitUninterruptibly
@Nonnull AsyncFuture<T> awaitUninterruptibly()
Waits for this future to be completed without interruption. This method catches anInterruptedExceptionand discards it silently.
-
await
boolean await(long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedExceptionWaits for this future to be completed within the specified time limit.- Returns:
trueif and only if the future was completed within the specified time limit- Throws:
java.lang.InterruptedException- if the current thread was interrupted
-
awaitUninterruptibly
boolean awaitUninterruptibly(long timeout, java.util.concurrent.TimeUnit unit)Waits for this future to be completed within the specified time limit without interruption. This method catches anInterruptedExceptionand discards it silently.- Returns:
trueif and only if the future was completed within the specified time limit
-
of
static <T> AsyncFuture<T> of(@Nonnull AsyncFuture<T> stage, boolean cancellable)
-
of
static <T> AsyncFuture<T> of(@Nonnull java.util.concurrent.CompletionStage<T> stage, boolean cancellable)
-
cancelled
static <T> AsyncPromise<T> cancelled()
Obtain an instance of an AsyncFuture which is in the Cancelled state.- Type Parameters:
T- any type.- Returns:
- Cancelled future.
-
deferred
static <T> AsyncPromise<T> deferred(boolean cancellable)
Create a new default deferred future.- Type Parameters:
T- Type of the future.- Parameters:
cancellable- true if cancellable.- Returns:
- new deferred async future.
-
failed
static <T> AsyncPromise<T> failed(@Nonnull java.lang.Throwable exception)
Create a new failed future. These futures are already in the Done state.- Type Parameters:
T- Type of the future.- Parameters:
exception- exception.- Returns:
- new failed async future.
-
success
static <T,V extends T> AsyncPromise<T> success(V value)
Create a new success future. These futures are already in the Done state.- Type Parameters:
T- Type of the value.- Parameters:
value- value of future.- Returns:
- new success async future.
-
collect
static <T> AsyncFuture<java.util.List<T>> collect(java.util.List<AsyncFuture<java.util.List<T>>> futuresList, boolean cancellable)
-
getStatus
static AsyncFuture.Status getStatus(AsyncFuture<?> future)
-
-