Interface Future<V>
-
- All Superinterfaces:
Awaitable
,io.netty.util.concurrent.Future<V>
,java.util.concurrent.Future<V>
,com.google.common.util.concurrent.ListenableFuture<V>
- All Known Subinterfaces:
Promise<V>
,RunnableFuture<V>
- All Known Implementing Classes:
AbstractFuture
,AsymmetricRemoteSyncTask
,AsyncChannelPromise
,AsyncFuture
,AsyncOneResponse
,AsyncPromise
,AsyncPromise.WithExecutor
,BlockingPartitionRepair
,FutureCombiner
,FutureTask
,FutureTaskWithResources
,ImmediateFuture
,LocalSyncTask
,PaxosCleanup
,PaxosCleanupComplete
,PaxosCleanupLocalCoordinator
,PaxosCleanupSession
,PaxosFinishPrepareCleanup
,PaxosStartPrepareCleanup
,RepairJob
,RepairSession
,Scheduler.Task
,SnapshotTask
,StreamResultFuture
,SymmetricRemoteSyncTask
,SyncFuture
,SyncFutureTask
,SyncPromise
,SyncPromise.WithExecutor
,SyncTask
,ValidationTask
public interface Future<V> extends io.netty.util.concurrent.Future<V>, com.google.common.util.concurrent.ListenableFuture<V>, Awaitable
A Future that integrates several different (but equivalent) APIs used within Cassandra into a single concept, integrating also with ourAwaitable
abstraction, to overall improve coherency and clarity in the codebase.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.cassandra.utils.concurrent.Awaitable
Awaitable.AbstractAwaitable, Awaitable.AsyncAwaitable, Awaitable.Defaults, Awaitable.SyncAwaitable
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods Modifier and Type Method Description Future<V>
addCallback(com.google.common.util.concurrent.FutureCallback<? super V> callback)
SupportFutures.addCallback(com.google.common.util.concurrent.ListenableFuture<V>, com.google.common.util.concurrent.FutureCallback<? super V>, java.util.concurrent.Executor)
nativelyFuture<V>
addCallback(com.google.common.util.concurrent.FutureCallback<? super V> callback, java.util.concurrent.Executor executor)
SupportFutures.addCallback(com.google.common.util.concurrent.ListenableFuture<V>, com.google.common.util.concurrent.FutureCallback<? super V>, java.util.concurrent.Executor)
nativelyFuture<V>
addCallback(java.util.function.BiConsumer<? super V,java.lang.Throwable> callback)
SupportFutures.addCallback(com.google.common.util.concurrent.ListenableFuture<V>, com.google.common.util.concurrent.FutureCallback<? super V>, java.util.concurrent.Executor)
nativelyFuture<V>
addCallback(java.util.function.BiConsumer<? super V,java.lang.Throwable> callback, java.util.concurrent.Executor executor)
SupportFutures.addCallback(com.google.common.util.concurrent.ListenableFuture<V>, com.google.common.util.concurrent.FutureCallback<? super V>, java.util.concurrent.Executor)
nativelyFuture<V>
addCallback(java.util.function.Consumer<? super V> onSuccess, java.util.function.Consumer<? super java.lang.Throwable> onFailure)
SupportFutures.addCallback(com.google.common.util.concurrent.ListenableFuture<V>, com.google.common.util.concurrent.FutureCallback<? super V>, java.util.concurrent.Executor)
nativelyFuture<V>
addCallback(java.util.function.Consumer<? super V> onSuccess, java.util.function.Consumer<? super java.lang.Throwable> onFailure, java.util.concurrent.Executor executor)
SupportFutures.addCallback(com.google.common.util.concurrent.ListenableFuture<V>, com.google.common.util.concurrent.FutureCallback<? super V>, java.util.concurrent.Executor)
nativelyFuture<V>
addListener(io.netty.util.concurrent.GenericFutureListener<? extends io.netty.util.concurrent.Future<? super V>> genericFutureListener)
void
addListener(java.lang.Runnable runnable)
Invokerunnable
on completion.void
addListener(java.lang.Runnable runnable, java.util.concurrent.Executor executor)
Invokerunnable
on completion, usingexecutor
.Future<V>
addListeners(io.netty.util.concurrent.GenericFutureListener<? extends io.netty.util.concurrent.Future<? super V>>... genericFutureListeners)
Future<V>
await()
Wait indefinitely for this future to complete, throwing any interruptdefault boolean
await(long l)
Deprecated.See CASSANDRA-16924Future<V>
awaitThrowUncheckedOnInterrupt()
Wait indefinitely for this promise to complete, throwing any interrupt as an UncheckedInterruptedExceptionFuture<V>
awaitUninterruptibly()
Wait indefinitely for this future to completedefault boolean
awaitUninterruptibly(long l)
Deprecated.See CASSANDRA-16924default <T> Future<T>
flatMap(java.util.function.Function<? super V,? extends Future<T>> flatMapper)
SupportFutures.transformAsync(ListenableFuture, AsyncFunction, Executor)
natively<T> Future<T>
flatMap(java.util.function.Function<? super V,? extends Future<T>> flatMapper, java.util.concurrent.Executor executor)
SupportFutures.transformAsync(ListenableFuture, AsyncFunction, Executor)
nativelydefault <T> Future<T>
map(java.util.function.Function<? super V,? extends T> mapper)
SupportFutures.transform(ListenableFuture, com.google.common.base.Function, Executor)
natively<T> Future<T>
map(java.util.function.Function<? super V,? extends T> mapper, java.util.concurrent.Executor executor)
SupportFutures.transform(ListenableFuture, com.google.common.base.Function, Executor)
nativelyjava.util.concurrent.Executor
notifyExecutor()
Future<V>
removeListener(io.netty.util.concurrent.GenericFutureListener<? extends io.netty.util.concurrent.Future<? super V>> genericFutureListener)
Future<V>
removeListeners(io.netty.util.concurrent.GenericFutureListener<? extends io.netty.util.concurrent.Future<? super V>>... genericFutureListeners)
default void
rethrowIfFailed()
default Future<V>
sync()
waits for completion; in case of failure rethrows the original exception without a new wrapping exception so may cause problems for reporting stack tracesdefault Future<V>
syncThrowUncheckedOnInterrupt()
waits for completion; in case of failure rethrows the original exception without a new wrapping exception so may cause problems for reporting stack tracesdefault Future<V>
syncUninterruptibly()
waits for completion; in case of failure rethrows the original exception without a new wrapping exception so may cause problems for reporting stack traces-
Methods inherited from interface org.apache.cassandra.utils.concurrent.Awaitable
await, awaitThrowUncheckedOnInterrupt, awaitUninterruptibly, awaitUntil, awaitUntilThrowUncheckedOnInterrupt, awaitUntilUninterruptibly
-
-
-
-
Method Detail
-
await
Future<V> await() throws java.lang.InterruptedException
Wait indefinitely for this future to complete, throwing any interrupt
-
awaitUninterruptibly
Future<V> awaitUninterruptibly()
Wait indefinitely for this future to complete- Specified by:
awaitUninterruptibly
in interfaceAwaitable
- Specified by:
awaitUninterruptibly
in interfaceio.netty.util.concurrent.Future<V>
-
awaitThrowUncheckedOnInterrupt
Future<V> awaitThrowUncheckedOnInterrupt()
Wait indefinitely for this promise to complete, throwing any interrupt as an UncheckedInterruptedException- Specified by:
awaitThrowUncheckedOnInterrupt
in interfaceAwaitable
- Throws:
UncheckedInterruptedException
- if interrupted
-
rethrowIfFailed
default void rethrowIfFailed()
-
sync
default Future<V> sync() throws java.lang.InterruptedException
waits for completion; in case of failure rethrows the original exception without a new wrapping exception so may cause problems for reporting stack traces- Specified by:
sync
in interfaceio.netty.util.concurrent.Future<V>
- Throws:
java.lang.InterruptedException
-
syncUninterruptibly
default Future<V> syncUninterruptibly()
waits for completion; in case of failure rethrows the original exception without a new wrapping exception so may cause problems for reporting stack traces- Specified by:
syncUninterruptibly
in interfaceio.netty.util.concurrent.Future<V>
-
syncThrowUncheckedOnInterrupt
default Future<V> syncThrowUncheckedOnInterrupt()
waits for completion; in case of failure rethrows the original exception without a new wrapping exception so may cause problems for reporting stack traces
-
await
@Deprecated(since="4.1") default boolean await(long l) throws java.lang.InterruptedException
Deprecated.See CASSANDRA-16924- Specified by:
await
in interfaceio.netty.util.concurrent.Future<V>
- Throws:
java.lang.InterruptedException
-
awaitUninterruptibly
@Deprecated(since="4.1") default boolean awaitUninterruptibly(long l)
Deprecated.See CASSANDRA-16924- Specified by:
awaitUninterruptibly
in interfaceio.netty.util.concurrent.Future<V>
-
addCallback
Future<V> addCallback(java.util.function.BiConsumer<? super V,java.lang.Throwable> callback)
SupportFutures.addCallback(com.google.common.util.concurrent.ListenableFuture<V>, com.google.common.util.concurrent.FutureCallback<? super V>, java.util.concurrent.Executor)
natively
-
addCallback
Future<V> addCallback(java.util.function.BiConsumer<? super V,java.lang.Throwable> callback, java.util.concurrent.Executor executor)
SupportFutures.addCallback(com.google.common.util.concurrent.ListenableFuture<V>, com.google.common.util.concurrent.FutureCallback<? super V>, java.util.concurrent.Executor)
natively
-
addCallback
Future<V> addCallback(com.google.common.util.concurrent.FutureCallback<? super V> callback)
SupportFutures.addCallback(com.google.common.util.concurrent.ListenableFuture<V>, com.google.common.util.concurrent.FutureCallback<? super V>, java.util.concurrent.Executor)
natively
-
addCallback
Future<V> addCallback(com.google.common.util.concurrent.FutureCallback<? super V> callback, java.util.concurrent.Executor executor)
SupportFutures.addCallback(com.google.common.util.concurrent.ListenableFuture<V>, com.google.common.util.concurrent.FutureCallback<? super V>, java.util.concurrent.Executor)
natively
-
addCallback
Future<V> addCallback(java.util.function.Consumer<? super V> onSuccess, java.util.function.Consumer<? super java.lang.Throwable> onFailure)
SupportFutures.addCallback(com.google.common.util.concurrent.ListenableFuture<V>, com.google.common.util.concurrent.FutureCallback<? super V>, java.util.concurrent.Executor)
natively
-
addCallback
Future<V> addCallback(java.util.function.Consumer<? super V> onSuccess, java.util.function.Consumer<? super java.lang.Throwable> onFailure, java.util.concurrent.Executor executor)
SupportFutures.addCallback(com.google.common.util.concurrent.ListenableFuture<V>, com.google.common.util.concurrent.FutureCallback<? super V>, java.util.concurrent.Executor)
natively
-
map
default <T> Future<T> map(java.util.function.Function<? super V,? extends T> mapper)
SupportFutures.transform(ListenableFuture, com.google.common.base.Function, Executor)
natively
-
map
<T> Future<T> map(java.util.function.Function<? super V,? extends T> mapper, java.util.concurrent.Executor executor)
SupportFutures.transform(ListenableFuture, com.google.common.base.Function, Executor)
natively
-
flatMap
default <T> Future<T> flatMap(java.util.function.Function<? super V,? extends Future<T>> flatMapper)
SupportFutures.transformAsync(ListenableFuture, AsyncFunction, Executor)
natively
-
flatMap
<T> Future<T> flatMap(java.util.function.Function<? super V,? extends Future<T>> flatMapper, java.util.concurrent.Executor executor)
SupportFutures.transformAsync(ListenableFuture, AsyncFunction, Executor)
natively
-
addListener
void addListener(java.lang.Runnable runnable, java.util.concurrent.Executor executor)
Invokerunnable
on completion, usingexecutor
. Tasks are submitted to their executors in the order they were added to this Future.- Specified by:
addListener
in interfacecom.google.common.util.concurrent.ListenableFuture<V>
-
addListener
void addListener(java.lang.Runnable runnable)
Invokerunnable
on completion. Depending on the implementation and its configuration, this may be executed immediately by the notifying/completing thread, or asynchronously by an executor. Tasks are executed, or submitted to the executor, in the order they were added to this Future.
-
notifyExecutor
java.util.concurrent.Executor notifyExecutor()
-
addListener
Future<V> addListener(io.netty.util.concurrent.GenericFutureListener<? extends io.netty.util.concurrent.Future<? super V>> genericFutureListener)
- Specified by:
addListener
in interfaceio.netty.util.concurrent.Future<V>
-
addListeners
Future<V> addListeners(io.netty.util.concurrent.GenericFutureListener<? extends io.netty.util.concurrent.Future<? super V>>... genericFutureListeners)
- Specified by:
addListeners
in interfaceio.netty.util.concurrent.Future<V>
-
removeListener
Future<V> removeListener(io.netty.util.concurrent.GenericFutureListener<? extends io.netty.util.concurrent.Future<? super V>> genericFutureListener)
- Specified by:
removeListener
in interfaceio.netty.util.concurrent.Future<V>
-
-