| Package | Description |
|---|---|
| com.google.common.util.concurrent |
Concurrency utilities.
|
| Modifier and Type | Field and Description |
|---|---|
private ClosingFuture<? extends V> |
ClosingFuture.ValueAndCloser.closingFuture |
private ClosingFuture<V1> |
ClosingFuture.Combiner2.future1 |
private ClosingFuture<V1> |
ClosingFuture.Combiner3.future1 |
private ClosingFuture<V1> |
ClosingFuture.Combiner4.future1 |
private ClosingFuture<V1> |
ClosingFuture.Combiner5.future1 |
private ClosingFuture<V2> |
ClosingFuture.Combiner2.future2 |
private ClosingFuture<V2> |
ClosingFuture.Combiner3.future2 |
private ClosingFuture<V2> |
ClosingFuture.Combiner4.future2 |
private ClosingFuture<V2> |
ClosingFuture.Combiner5.future2 |
private ClosingFuture<V3> |
ClosingFuture.Combiner3.future3 |
private ClosingFuture<V3> |
ClosingFuture.Combiner4.future3 |
private ClosingFuture<V3> |
ClosingFuture.Combiner5.future3 |
private ClosingFuture<V4> |
ClosingFuture.Combiner4.future4 |
private ClosingFuture<V4> |
ClosingFuture.Combiner5.future4 |
private ClosingFuture<V5> |
ClosingFuture.Combiner5.future5 |
| Modifier and Type | Field and Description |
|---|---|
private ImmutableList<ClosingFuture<?>> |
ClosingFuture.Peeker.futures |
private static Function<ClosingFuture<?>,FluentFuture<?>> |
ClosingFuture.Combiner.INNER_FUTURE |
protected ImmutableList<ClosingFuture<?>> |
ClosingFuture.Combiner.inputs |
| Modifier and Type | Method and Description |
|---|---|
ClosingFuture<U> |
ClosingFuture.AsyncClosingFunction.apply(ClosingFuture.DeferredCloser closer,
T input)
Applies this function to an input, or throws an exception if unable to do so.
|
ClosingFuture<U> |
ClosingFuture.Combiner2.AsyncClosingFunction2.apply(ClosingFuture.DeferredCloser closer,
V1 value1,
V2 value2)
Applies this function to two inputs, or throws an exception if unable to do so.
|
ClosingFuture<U> |
ClosingFuture.Combiner3.AsyncClosingFunction3.apply(ClosingFuture.DeferredCloser closer,
V1 value1,
V2 value2,
V3 value3)
Applies this function to three inputs, or throws an exception if unable to do so.
|
ClosingFuture<U> |
ClosingFuture.Combiner4.AsyncClosingFunction4.apply(ClosingFuture.DeferredCloser closer,
V1 value1,
V2 value2,
V3 value3,
V4 value4)
Applies this function to four inputs, or throws an exception if unable to do so.
|
ClosingFuture<U> |
ClosingFuture.Combiner5.AsyncClosingFunction5.apply(ClosingFuture.DeferredCloser closer,
V1 value1,
V2 value2,
V3 value3,
V4 value4,
V5 value5)
Applies this function to five inputs, or throws an exception if unable to do so.
|
<V> ClosingFuture<V> |
ClosingFuture.Combiner.call(ClosingFuture.Combiner.CombiningCallable<V> combiningCallable,
java.util.concurrent.Executor executor)
Returns a new
ClosingFuture pipeline step derived from the inputs by applying a
combining function to their values. |
<U> ClosingFuture<U> |
ClosingFuture.Combiner2.call(ClosingFuture.Combiner2.ClosingFunction2<V1,V2,U> function,
java.util.concurrent.Executor executor)
Returns a new
ClosingFuture pipeline step derived from the inputs by applying a
combining function to their values. |
<U> ClosingFuture<U> |
ClosingFuture.Combiner3.call(ClosingFuture.Combiner3.ClosingFunction3<V1,V2,V3,U> function,
java.util.concurrent.Executor executor)
Returns a new
ClosingFuture pipeline step derived from the inputs by applying a
combining function to their values. |
<U> ClosingFuture<U> |
ClosingFuture.Combiner4.call(ClosingFuture.Combiner4.ClosingFunction4<V1,V2,V3,V4,U> function,
java.util.concurrent.Executor executor)
Returns a new
ClosingFuture pipeline step derived from the inputs by applying a
combining function to their values. |
<U> ClosingFuture<U> |
ClosingFuture.Combiner5.call(ClosingFuture.Combiner5.ClosingFunction5<V1,V2,V3,V4,V5,U> function,
java.util.concurrent.Executor executor)
Returns a new
ClosingFuture pipeline step derived from the inputs by applying a
combining function to their values. |
ClosingFuture<V> |
ClosingFuture.AsyncClosingCallable.call(ClosingFuture.DeferredCloser closer)
Computes a result, or throws an exception if unable to do so.
|
ClosingFuture<V> |
ClosingFuture.Combiner.AsyncCombiningCallable.call(ClosingFuture.DeferredCloser closer,
ClosingFuture.Peeker peeker)
Computes a
ClosingFuture result, or throws an exception if unable to do so. |
<V> ClosingFuture<V> |
ClosingFuture.Combiner.callAsync(ClosingFuture.Combiner.AsyncCombiningCallable<V> combiningCallable,
java.util.concurrent.Executor executor)
Returns a new
ClosingFuture pipeline step derived from the inputs by applying a
ClosingFuture-returning function to their values. |
<U> ClosingFuture<U> |
ClosingFuture.Combiner2.callAsync(ClosingFuture.Combiner2.AsyncClosingFunction2<V1,V2,U> function,
java.util.concurrent.Executor executor)
Returns a new
ClosingFuture pipeline step derived from the inputs by applying a
ClosingFuture-returning function to their values. |
<U> ClosingFuture<U> |
ClosingFuture.Combiner3.callAsync(ClosingFuture.Combiner3.AsyncClosingFunction3<V1,V2,V3,U> function,
java.util.concurrent.Executor executor)
Returns a new
ClosingFuture pipeline step derived from the inputs by applying a
ClosingFuture-returning function to their values. |
<U> ClosingFuture<U> |
ClosingFuture.Combiner4.callAsync(ClosingFuture.Combiner4.AsyncClosingFunction4<V1,V2,V3,V4,U> function,
java.util.concurrent.Executor executor)
Returns a new
ClosingFuture pipeline step derived from the inputs by applying a
ClosingFuture-returning function to their values. |
<U> ClosingFuture<U> |
ClosingFuture.Combiner5.callAsync(ClosingFuture.Combiner5.AsyncClosingFunction5<V1,V2,V3,V4,V5,U> function,
java.util.concurrent.Executor executor)
Returns a new
ClosingFuture pipeline step derived from the inputs by applying a
ClosingFuture-returning function to their values. |
<X extends java.lang.Throwable> |
ClosingFuture.catching(java.lang.Class<X> exceptionType,
ClosingFuture.ClosingFunction<? super X,? extends V> fallback,
java.util.concurrent.Executor executor)
Returns a new
ClosingFuture pipeline step derived from this one by applying a function
to its exception if it is an instance of a given exception type. |
<X extends java.lang.Throwable> |
ClosingFuture.catchingAsync(java.lang.Class<X> exceptionType,
ClosingFuture.AsyncClosingFunction<? super X,? extends V> fallback,
java.util.concurrent.Executor executor)
Returns a new
ClosingFuture pipeline step derived from this one by applying a function
that returns a ClosingFuture to its exception if it is an instance of a given exception
type. |
private <X extends java.lang.Throwable,W extends V> |
ClosingFuture.catchingAsyncMoreGeneric(java.lang.Class<X> exceptionType,
ClosingFuture.AsyncClosingFunction<? super X,W> fallback,
java.util.concurrent.Executor executor) |
private <X extends java.lang.Throwable,W extends V> |
ClosingFuture.catchingMoreGeneric(java.lang.Class<X> exceptionType,
ClosingFuture.ClosingFunction<? super X,W> fallback,
java.util.concurrent.Executor executor) |
private <U> ClosingFuture<U> |
ClosingFuture.derive(FluentFuture<U> future) |
static <C extends java.lang.Object & java.lang.AutoCloseable> |
ClosingFuture.eventuallyClosing(ListenableFuture<C> future,
java.util.concurrent.Executor closingExecutor)
Deprecated.
Creating
Futures of closeable types is dangerous in general because the
underlying value may never be closed if the Future is canceled after its operation
begins. Consider replacing code that creates ListenableFutures of closeable types,
including those that pass them to this method, with submit(ClosingCallable,
Executor) in order to ensure that resources do not leak. Or, to start a pipeline with a
ListenableFuture that doesn't create values that should be closed, use from(com.google.common.util.concurrent.ListenableFuture<V>). |
static <V> ClosingFuture<V> |
ClosingFuture.from(ListenableFuture<V> future)
Starts a
ClosingFuture pipeline with a ListenableFuture. |
static <V> ClosingFuture<V> |
ClosingFuture.submit(ClosingFuture.ClosingCallable<V> callable,
java.util.concurrent.Executor executor)
Starts a
ClosingFuture pipeline by submitting a callable block to an executor. |
static <V> ClosingFuture<V> |
ClosingFuture.submitAsync(ClosingFuture.AsyncClosingCallable<V> callable,
java.util.concurrent.Executor executor)
Starts a
ClosingFuture pipeline by submitting a callable block to an executor. |
<U> ClosingFuture<U> |
ClosingFuture.transform(ClosingFuture.ClosingFunction<? super V,U> function,
java.util.concurrent.Executor executor)
Returns a new
ClosingFuture pipeline step derived from this one by applying a function
to its value. |
<U> ClosingFuture<U> |
ClosingFuture.transformAsync(ClosingFuture.AsyncClosingFunction<? super V,U> function,
java.util.concurrent.Executor executor)
Returns a new
ClosingFuture pipeline step derived from this one by applying a function
that returns a ClosingFuture to its value. |
| Modifier and Type | Method and Description |
|---|---|
<D> D |
ClosingFuture.Peeker.getDone(ClosingFuture<D> closingFuture)
Returns the value of
closingFuture. |
private static <C,V extends C> |
ClosingFuture.provideValueAndCloser(ClosingFuture.ValueAndCloserConsumer<C> consumer,
ClosingFuture<V> closingFuture) |
static ClosingFuture.Combiner |
ClosingFuture.whenAllComplete(ClosingFuture<?> future1,
ClosingFuture<?>... moreFutures)
Starts specifying how to combine
ClosingFutures into a single pipeline. |
static ClosingFuture.Combiner |
ClosingFuture.whenAllComplete(ClosingFuture<?> future1,
ClosingFuture<?>... moreFutures)
Starts specifying how to combine
ClosingFutures into a single pipeline. |
static ClosingFuture.Combiner |
ClosingFuture.whenAllSucceed(ClosingFuture<?> future1,
ClosingFuture<?> future2,
ClosingFuture<?> future3,
ClosingFuture<?> future4,
ClosingFuture<?> future5,
ClosingFuture<?> future6,
ClosingFuture<?>... moreFutures)
Starts specifying how to combine
ClosingFutures into a single pipeline, assuming they
all succeed. |
static ClosingFuture.Combiner |
ClosingFuture.whenAllSucceed(ClosingFuture<?> future1,
ClosingFuture<?> future2,
ClosingFuture<?> future3,
ClosingFuture<?> future4,
ClosingFuture<?> future5,
ClosingFuture<?> future6,
ClosingFuture<?>... moreFutures)
Starts specifying how to combine
ClosingFutures into a single pipeline, assuming they
all succeed. |
static ClosingFuture.Combiner |
ClosingFuture.whenAllSucceed(ClosingFuture<?> future1,
ClosingFuture<?> future2,
ClosingFuture<?> future3,
ClosingFuture<?> future4,
ClosingFuture<?> future5,
ClosingFuture<?> future6,
ClosingFuture<?>... moreFutures)
Starts specifying how to combine
ClosingFutures into a single pipeline, assuming they
all succeed. |
static ClosingFuture.Combiner |
ClosingFuture.whenAllSucceed(ClosingFuture<?> future1,
ClosingFuture<?> future2,
ClosingFuture<?> future3,
ClosingFuture<?> future4,
ClosingFuture<?> future5,
ClosingFuture<?> future6,
ClosingFuture<?>... moreFutures)
Starts specifying how to combine
ClosingFutures into a single pipeline, assuming they
all succeed. |
static ClosingFuture.Combiner |
ClosingFuture.whenAllSucceed(ClosingFuture<?> future1,
ClosingFuture<?> future2,
ClosingFuture<?> future3,
ClosingFuture<?> future4,
ClosingFuture<?> future5,
ClosingFuture<?> future6,
ClosingFuture<?>... moreFutures)
Starts specifying how to combine
ClosingFutures into a single pipeline, assuming they
all succeed. |
static ClosingFuture.Combiner |
ClosingFuture.whenAllSucceed(ClosingFuture<?> future1,
ClosingFuture<?> future2,
ClosingFuture<?> future3,
ClosingFuture<?> future4,
ClosingFuture<?> future5,
ClosingFuture<?> future6,
ClosingFuture<?>... moreFutures)
Starts specifying how to combine
ClosingFutures into a single pipeline, assuming they
all succeed. |
static ClosingFuture.Combiner |
ClosingFuture.whenAllSucceed(ClosingFuture<?> future1,
ClosingFuture<?> future2,
ClosingFuture<?> future3,
ClosingFuture<?> future4,
ClosingFuture<?> future5,
ClosingFuture<?> future6,
ClosingFuture<?>... moreFutures)
Starts specifying how to combine
ClosingFutures into a single pipeline, assuming they
all succeed. |
static <V1,V2> ClosingFuture.Combiner2<V1,V2> |
ClosingFuture.whenAllSucceed(ClosingFuture<V1> future1,
ClosingFuture<V2> future2)
Starts specifying how to combine two
ClosingFutures into a single pipeline, assuming
they all succeed. |
static <V1,V2> ClosingFuture.Combiner2<V1,V2> |
ClosingFuture.whenAllSucceed(ClosingFuture<V1> future1,
ClosingFuture<V2> future2)
Starts specifying how to combine two
ClosingFutures into a single pipeline, assuming
they all succeed. |
static <V1,V2,V3> ClosingFuture.Combiner3<V1,V2,V3> |
ClosingFuture.whenAllSucceed(ClosingFuture<V1> future1,
ClosingFuture<V2> future2,
ClosingFuture<V3> future3)
Starts specifying how to combine three
ClosingFutures into a single pipeline, assuming
they all succeed. |
static <V1,V2,V3> ClosingFuture.Combiner3<V1,V2,V3> |
ClosingFuture.whenAllSucceed(ClosingFuture<V1> future1,
ClosingFuture<V2> future2,
ClosingFuture<V3> future3)
Starts specifying how to combine three
ClosingFutures into a single pipeline, assuming
they all succeed. |
static <V1,V2,V3> ClosingFuture.Combiner3<V1,V2,V3> |
ClosingFuture.whenAllSucceed(ClosingFuture<V1> future1,
ClosingFuture<V2> future2,
ClosingFuture<V3> future3)
Starts specifying how to combine three
ClosingFutures into a single pipeline, assuming
they all succeed. |
static <V1,V2,V3,V4> |
ClosingFuture.whenAllSucceed(ClosingFuture<V1> future1,
ClosingFuture<V2> future2,
ClosingFuture<V3> future3,
ClosingFuture<V4> future4)
Starts specifying how to combine four
ClosingFutures into a single pipeline, assuming
they all succeed. |
static <V1,V2,V3,V4> |
ClosingFuture.whenAllSucceed(ClosingFuture<V1> future1,
ClosingFuture<V2> future2,
ClosingFuture<V3> future3,
ClosingFuture<V4> future4)
Starts specifying how to combine four
ClosingFutures into a single pipeline, assuming
they all succeed. |
static <V1,V2,V3,V4> |
ClosingFuture.whenAllSucceed(ClosingFuture<V1> future1,
ClosingFuture<V2> future2,
ClosingFuture<V3> future3,
ClosingFuture<V4> future4)
Starts specifying how to combine four
ClosingFutures into a single pipeline, assuming
they all succeed. |
static <V1,V2,V3,V4> |
ClosingFuture.whenAllSucceed(ClosingFuture<V1> future1,
ClosingFuture<V2> future2,
ClosingFuture<V3> future3,
ClosingFuture<V4> future4)
Starts specifying how to combine four
ClosingFutures into a single pipeline, assuming
they all succeed. |
static <V1,V2,V3,V4,V5> |
ClosingFuture.whenAllSucceed(ClosingFuture<V1> future1,
ClosingFuture<V2> future2,
ClosingFuture<V3> future3,
ClosingFuture<V4> future4,
ClosingFuture<V5> future5)
Starts specifying how to combine five
ClosingFutures into a single pipeline, assuming
they all succeed. |
static <V1,V2,V3,V4,V5> |
ClosingFuture.whenAllSucceed(ClosingFuture<V1> future1,
ClosingFuture<V2> future2,
ClosingFuture<V3> future3,
ClosingFuture<V4> future4,
ClosingFuture<V5> future5)
Starts specifying how to combine five
ClosingFutures into a single pipeline, assuming
they all succeed. |
static <V1,V2,V3,V4,V5> |
ClosingFuture.whenAllSucceed(ClosingFuture<V1> future1,
ClosingFuture<V2> future2,
ClosingFuture<V3> future3,
ClosingFuture<V4> future4,
ClosingFuture<V5> future5)
Starts specifying how to combine five
ClosingFutures into a single pipeline, assuming
they all succeed. |
static <V1,V2,V3,V4,V5> |
ClosingFuture.whenAllSucceed(ClosingFuture<V1> future1,
ClosingFuture<V2> future2,
ClosingFuture<V3> future3,
ClosingFuture<V4> future4,
ClosingFuture<V5> future5)
Starts specifying how to combine five
ClosingFutures into a single pipeline, assuming
they all succeed. |
static <V1,V2,V3,V4,V5> |
ClosingFuture.whenAllSucceed(ClosingFuture<V1> future1,
ClosingFuture<V2> future2,
ClosingFuture<V3> future3,
ClosingFuture<V4> future4,
ClosingFuture<V5> future5)
Starts specifying how to combine five
ClosingFutures into a single pipeline, assuming
they all succeed. |
| Modifier and Type | Method and Description |
|---|---|
static ClosingFuture.Combiner |
ClosingFuture.whenAllComplete(java.lang.Iterable<? extends ClosingFuture<?>> futures)
Starts specifying how to combine
ClosingFutures into a single pipeline. |
static ClosingFuture.Combiner |
ClosingFuture.whenAllSucceed(java.lang.Iterable<? extends ClosingFuture<?>> futures)
Starts specifying how to combine
ClosingFutures into a single pipeline, assuming they
all succeed. |
| Constructor and Description |
|---|
Combiner(boolean allMustSucceed,
java.lang.Iterable<? extends ClosingFuture<?>> inputs) |
Peeker(ImmutableList<ClosingFuture<?>> futures) |