@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| 限定符和类型 | 方法和说明 |
|---|---|
boolean |
hasReceivedEndOfData() |
boolean |
isFinished() |
Optional<T> |
pollNext()
Poll the next element.
|
and, getAvailableFuture, isApproximatelyAvailable, isAvailable, orOptional<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()
boolean hasReceivedEndOfData()
Copyright © 2014–2022 The Apache Software Foundation. All rights reserved.