@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.AvailabilityHelper
AVAILABLE
Modifier and Type | Method and Description |
---|---|
boolean |
isFinished() |
Optional<T> |
pollNext()
Poll the next element.
|
getAvailableFuture, isApproximatelyAvailable, isAvailable
Optional<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)
.Exception
boolean isFinished()
Copyright © 2014–2020 The Apache Software Foundation. All rights reserved.