Class SyncPromise<V>
- java.lang.Object
-
- org.apache.cassandra.utils.concurrent.AbstractFuture<V>
-
- org.apache.cassandra.utils.concurrent.SyncFuture<V>
-
- org.apache.cassandra.utils.concurrent.SyncPromise<V>
-
- All Implemented Interfaces:
com.google.common.util.concurrent.ListenableFuture<V>,io.netty.util.concurrent.Future<V>,io.netty.util.concurrent.Promise<V>,java.util.concurrent.Future<V>,Awaitable,Future<V>,Promise<V>
- Direct Known Subclasses:
SyncPromise.WithExecutor
public class SyncPromise<V> extends SyncFuture<V> implements Promise<V>
ExtendsSyncFutureto implement thePromiseinterface.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSyncPromise.WithExecutor<V>-
Nested classes/interfaces inherited from interface org.apache.cassandra.utils.concurrent.Awaitable
Awaitable.AbstractAwaitable, Awaitable.AsyncAwaitable, Awaitable.Defaults, Awaitable.SyncAwaitable
-
-
Field Summary
-
Fields inherited from class org.apache.cassandra.utils.concurrent.AbstractFuture
CANCELLED, UNCANCELLABLE, UNSET
-
-
Constructor Summary
Constructors Constructor Description SyncPromise()SyncPromise(io.netty.util.concurrent.GenericFutureListener<? extends io.netty.util.concurrent.Future<? super V>> listener)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description SyncPromise<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 SeeAbstractFuture.addListener(GenericFutureListener)for ordering semantics.SyncPromise<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 SeeAbstractFuture.addListener(GenericFutureListener)for ordering semantics.SyncPromise<V>addCallback(java.util.function.Consumer<? super V> onSuccess, java.util.function.Consumer<? super java.lang.Throwable> onFailure)Support more fluid version ofFutures.addCallback(com.google.common.util.concurrent.ListenableFuture<V>, com.google.common.util.concurrent.FutureCallback<? super V>, java.util.concurrent.Executor)SeeAbstractFuture.addListener(GenericFutureListener)for ordering semantics.SyncPromise<V>addListener(io.netty.util.concurrent.GenericFutureListener<? extends io.netty.util.concurrent.Future<? super V>> listener)Add a listener to be invoked once this future completes.SyncPromise<V>addListeners(io.netty.util.concurrent.GenericFutureListener<? extends io.netty.util.concurrent.Future<? super V>>... listeners)SyncPromise<V>await()Wait for this promise to completeSyncPromise<V>awaitThrowUncheckedOnInterrupt()Wait for this promise to complete, throwing any interrupt as an UncheckedInterruptedExceptionSyncPromise<V>awaitUninterruptibly()Wait uninterruptibly for this promise to completebooleanisUncancellable()SyncPromise<V>removeListener(io.netty.util.concurrent.GenericFutureListener<? extends io.netty.util.concurrent.Future<? super V>> listener)SyncPromise<V>removeListeners(io.netty.util.concurrent.GenericFutureListener<? extends io.netty.util.concurrent.Future<? super V>>... listeners)Promise<V>setFailure(java.lang.Throwable throwable)Complete the promise abnormally if not already completePromise<V>setSuccess(V v)Complete the promise successfully if not already completebooleansetUncancellable()Prevent a future caller from cancelling this promisebooleansetUncancellableExclusive()Prevent a future caller from cancelling this promisePromise<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 tracesPromise<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 tracesbooleantryFailure(java.lang.Throwable throwable)Complete the promise abnormally if not already completebooleantrySuccess(V v)Complete the promise successfully if not already completestatic <V> SyncPromise<V>uncancellable()static <V> SyncPromise<V>uncancellable(io.netty.util.concurrent.GenericFutureListener<? extends io.netty.util.concurrent.Future<? super V>> listener)static <V> SyncPromise<V>uncancellable(java.util.concurrent.Executor executor)static <V> SyncPromise<V>withExecutor(java.util.concurrent.Executor executor)-
Methods inherited from class org.apache.cassandra.utils.concurrent.SyncFuture
awaitUntil, flatMap, map
-
Methods inherited from class org.apache.cassandra.utils.concurrent.AbstractFuture
addCallback, addCallback, addCallback, addListener, addListener, await, awaitThrowUncheckedOnInterrupt, awaitUninterruptibly, awaitUntilThrowUncheckedOnInterrupt, awaitUntilUninterruptibly, cancel, cause, description, flatMap, get, get, getNow, getWhenDone, isCancellable, isCancelled, isDone, isSuccess, map, map, notifyExecutor, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.cassandra.utils.concurrent.Awaitable
await, awaitThrowUncheckedOnInterrupt, awaitUninterruptibly, awaitUntil, awaitUntilThrowUncheckedOnInterrupt, awaitUntilUninterruptibly
-
Methods inherited from interface io.netty.util.concurrent.Future
await, awaitUninterruptibly, cancel, cause, getNow, isCancellable, isSuccess
-
Methods inherited from interface org.apache.cassandra.utils.concurrent.Future
addCallback, addCallback, addCallback, addListener, addListener, await, awaitUninterruptibly, flatMap, flatMap, map, map, notifyExecutor, rethrowIfFailed, syncThrowUncheckedOnInterrupt
-
-
-
-
Constructor Detail
-
SyncPromise
public SyncPromise()
-
SyncPromise
public SyncPromise(io.netty.util.concurrent.GenericFutureListener<? extends io.netty.util.concurrent.Future<? super V>> listener)
-
-
Method Detail
-
withExecutor
public static <V> SyncPromise<V> withExecutor(java.util.concurrent.Executor executor)
-
uncancellable
public static <V> SyncPromise<V> uncancellable()
-
uncancellable
public static <V> SyncPromise<V> uncancellable(java.util.concurrent.Executor executor)
-
uncancellable
public static <V> SyncPromise<V> uncancellable(io.netty.util.concurrent.GenericFutureListener<? extends io.netty.util.concurrent.Future<? super V>> listener)
-
setSuccess
public Promise<V> setSuccess(V v)
Complete the promise successfully if not already complete- Specified by:
setSuccessin interfaceio.netty.util.concurrent.Promise<V>- Specified by:
setSuccessin interfacePromise<V>- Throws:
java.lang.IllegalStateException- if already set
-
trySuccess
public boolean trySuccess(V v)
Complete the promise successfully if not already complete- Specified by:
trySuccessin interfaceio.netty.util.concurrent.Promise<V>- Overrides:
trySuccessin classAbstractFuture<V>- Returns:
- true iff completed promise
-
setFailure
public Promise<V> setFailure(java.lang.Throwable throwable)
Complete the promise abnormally if not already complete- Specified by:
setFailurein interfaceio.netty.util.concurrent.Promise<V>- Specified by:
setFailurein interfacePromise<V>- Throws:
java.lang.IllegalStateException- if already set
-
tryFailure
public boolean tryFailure(java.lang.Throwable throwable)
Complete the promise abnormally if not already complete- Specified by:
tryFailurein interfaceio.netty.util.concurrent.Promise<V>- Overrides:
tryFailurein classAbstractFuture<V>- Returns:
- true iff completed promise
-
setUncancellable
public boolean setUncancellable()
Prevent a future caller from cancelling this promise- Specified by:
setUncancellablein interfaceio.netty.util.concurrent.Promise<V>- Overrides:
setUncancellablein classAbstractFuture<V>- Returns:
- true if the promise is now uncancellable (whether or not we did this)
-
setUncancellableExclusive
public boolean setUncancellableExclusive()
Prevent a future caller from cancelling this promise- Specified by:
setUncancellableExclusivein interfacePromise<V>- Overrides:
setUncancellableExclusivein classAbstractFuture<V>- Returns:
- true iff this invocation set it to uncancellable, whether or not now uncancellable
-
isUncancellable
public boolean isUncancellable()
- Overrides:
isUncancellablein classAbstractFuture<V>
-
sync
public Promise<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
-
syncUninterruptibly
public Promise<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:
syncUninterruptiblyin interfaceio.netty.util.concurrent.Future<V>- Specified by:
syncUninterruptiblyin interfaceFuture<V>- Specified by:
syncUninterruptiblyin interfaceio.netty.util.concurrent.Promise<V>- Specified by:
syncUninterruptiblyin interfacePromise<V>
-
addListener
public SyncPromise<V> addListener(io.netty.util.concurrent.GenericFutureListener<? extends io.netty.util.concurrent.Future<? super V>> listener)
Description copied from class:AbstractFutureAdd a listener to be invoked once this future completes. Listeners are submitted toAbstractFuture.notifyExecutor()in the order they are added (or the specified executor in the case ofAbstractFuture.addListener(Runnable, Executor). ifAbstractFuture.notifyExecutor()is unset, they are invoked in the order they are added. The ordering holds across all variants of this method.- Specified by:
addListenerin interfaceio.netty.util.concurrent.Future<V>- Specified by:
addListenerin interfaceFuture<V>- Specified by:
addListenerin interfaceio.netty.util.concurrent.Promise<V>- Specified by:
addListenerin interfacePromise<V>- Overrides:
addListenerin classAbstractFuture<V>
-
addListeners
public SyncPromise<V> addListeners(io.netty.util.concurrent.GenericFutureListener<? extends io.netty.util.concurrent.Future<? super V>>... listeners)
- Specified by:
addListenersin interfaceio.netty.util.concurrent.Future<V>- Specified by:
addListenersin interfaceFuture<V>- Specified by:
addListenersin interfaceio.netty.util.concurrent.Promise<V>- Specified by:
addListenersin interfacePromise<V>- Overrides:
addListenersin classAbstractFuture<V>
-
removeListener
public SyncPromise<V> removeListener(io.netty.util.concurrent.GenericFutureListener<? extends io.netty.util.concurrent.Future<? super V>> listener)
- Specified by:
removeListenerin interfaceio.netty.util.concurrent.Future<V>- Specified by:
removeListenerin interfaceFuture<V>- Specified by:
removeListenerin interfaceio.netty.util.concurrent.Promise<V>- Specified by:
removeListenerin interfacePromise<V>- Overrides:
removeListenerin classAbstractFuture<V>
-
removeListeners
public SyncPromise<V> removeListeners(io.netty.util.concurrent.GenericFutureListener<? extends io.netty.util.concurrent.Future<? super V>>... listeners)
- Specified by:
removeListenersin interfaceio.netty.util.concurrent.Future<V>- Specified by:
removeListenersin interfaceFuture<V>- Specified by:
removeListenersin interfaceio.netty.util.concurrent.Promise<V>- Specified by:
removeListenersin interfacePromise<V>- Overrides:
removeListenersin classAbstractFuture<V>
-
addCallback
public SyncPromise<V> addCallback(com.google.common.util.concurrent.FutureCallback<? super V> callback)
Description copied from class:AbstractFutureSupportFutures.addCallback(com.google.common.util.concurrent.ListenableFuture<V>, com.google.common.util.concurrent.FutureCallback<? super V>, java.util.concurrent.Executor)natively SeeAbstractFuture.addListener(GenericFutureListener)for ordering semantics.- Specified by:
addCallbackin interfaceFuture<V>- Specified by:
addCallbackin interfacePromise<V>- Overrides:
addCallbackin classAbstractFuture<V>
-
addCallback
public SyncPromise<V> addCallback(com.google.common.util.concurrent.FutureCallback<? super V> callback, java.util.concurrent.Executor executor)
Description copied from class:AbstractFutureSupportFutures.addCallback(com.google.common.util.concurrent.ListenableFuture<V>, com.google.common.util.concurrent.FutureCallback<? super V>, java.util.concurrent.Executor)natively SeeAbstractFuture.addListener(GenericFutureListener)for ordering semantics.- Specified by:
addCallbackin interfaceFuture<V>- Specified by:
addCallbackin interfacePromise<V>- Overrides:
addCallbackin classAbstractFuture<V>
-
addCallback
public SyncPromise<V> addCallback(java.util.function.Consumer<? super V> onSuccess, java.util.function.Consumer<? super java.lang.Throwable> onFailure)
Description copied from class:AbstractFutureSupport more fluid version ofFutures.addCallback(com.google.common.util.concurrent.ListenableFuture<V>, com.google.common.util.concurrent.FutureCallback<? super V>, java.util.concurrent.Executor)SeeAbstractFuture.addListener(GenericFutureListener)for ordering semantics.- Specified by:
addCallbackin interfaceFuture<V>- Specified by:
addCallbackin interfacePromise<V>- Overrides:
addCallbackin classAbstractFuture<V>
-
await
public SyncPromise<V> await() throws java.lang.InterruptedException
Wait for this promise to complete- Specified by:
awaitin interfaceAwaitable- Specified by:
awaitin interfaceio.netty.util.concurrent.Future<V>- Specified by:
awaitin interfaceFuture<V>- Specified by:
awaitin interfaceio.netty.util.concurrent.Promise<V>- Specified by:
awaitin interfacePromise<V>- Overrides:
awaitin classSyncFuture<V>- Throws:
java.lang.InterruptedException- if interrupted
-
awaitUninterruptibly
public SyncPromise<V> awaitUninterruptibly()
Wait uninterruptibly for this promise to complete- Specified by:
awaitUninterruptiblyin interfaceAwaitable- Specified by:
awaitUninterruptiblyin interfaceio.netty.util.concurrent.Future<V>- Specified by:
awaitUninterruptiblyin interfaceFuture<V>- Specified by:
awaitUninterruptiblyin interfaceio.netty.util.concurrent.Promise<V>- Specified by:
awaitUninterruptiblyin interfacePromise<V>- Overrides:
awaitUninterruptiblyin classAbstractFuture<V>
-
awaitThrowUncheckedOnInterrupt
public SyncPromise<V> awaitThrowUncheckedOnInterrupt() throws UncheckedInterruptedException
Wait for this promise to complete, throwing any interrupt as an UncheckedInterruptedException- Specified by:
awaitThrowUncheckedOnInterruptin interfaceAwaitable- Specified by:
awaitThrowUncheckedOnInterruptin interfaceFuture<V>- Specified by:
awaitThrowUncheckedOnInterruptin interfacePromise<V>- Overrides:
awaitThrowUncheckedOnInterruptin classAbstractFuture<V>- Throws:
UncheckedInterruptedException- if interrupted
-
-