@Internal public interface PullingAsyncDataInput<T> extends AvailabilityProvider
For the most efficient usage, user of this class is supposed to call pollNext()
until it returns that no more elements are available. If that happens, he should check if
input isFinished(). If not, he should wait for AvailabilityProvider.getAvailableFuture()
CompletableFuture to be completed. For example:
AsyncDataInput<T> input = ...;
while (!input.isFinished()) {
Optional<T> next;
while (true) {
next = input.pollNext();
if (!next.isPresent()) {
break;
}
// do something with next
}
input.getAvailableFuture().get();
}
AvailabilityProvider.AvailabilityHelperAVAILABLE| Modifier and Type | Method and Description |
|---|---|
boolean |
isFinished() |
Optional<T> |
pollNext()
Poll the next element.
|
getAvailableFuture, isApproximatelyAvailable, isAvailableOptional<T> pollNext() throws Exception
Optional.empty() will be returned if there is no data to return or
if isFinished() returns true. Otherwise Optional.of(element).Exceptionboolean isFinished()
Copyright © 2014–2020 The Apache Software Foundation. All rights reserved.