Class ClosingFuture.Combiner

java.lang.Object
com.google.common.util.concurrent.ClosingFuture.Combiner
Direct Known Subclasses:
ClosingFuture.Combiner2, ClosingFuture.Combiner3, ClosingFuture.Combiner4, ClosingFuture.Combiner5
Enclosing class:
ClosingFuture<V extends @Nullable Object>

@DoNotMock("Use ClosingFuture.whenAllSucceed() or .whenAllComplete() instead.") public static class ClosingFuture.Combiner extends Object
A builder of a ClosingFuture step that is derived from more than one input step.

See ClosingFuture.whenAllComplete(Iterable) and ClosingFuture.whenAllSucceed(Iterable) for how to instantiate this class.

Example:

ClosingFuture<BufferedReader> file1ReaderFuture = ...;
ClosingFuture<BufferedReader> file2ReaderFuture = ...;
ListenableFuture<Integer> numberOfDifferentLines =
    ClosingFuture.whenAllSucceed(file1ReaderFuture, file2ReaderFuture)
        .call(
            (closer, peeker) -> {
              BufferedReader file1Reader = peeker.getDone(file1ReaderFuture);
              BufferedReader file2Reader = peeker.getDone(file2ReaderFuture);
              return countDifferentLines(file1Reader, file2Reader);
            },
            executor)
        .finishToFuture();