@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.
|
and, getAvailableFuture, isApproximatelyAvailable, isAvailable, or
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–2021 The Apache Software Foundation. All rights reserved.