public void preHasNext() { if (!scannedResultsStarted.getAndSet(true)) { dataIndexRetrieval.notifyIteratorInitiated(); } }
public O postFindNext(final boolean hasNextValue, final boolean hasNextScannedResult) { if (!hasNextScannedResult && !scannedResultsExhausted.getAndSet(true)) { dataIndexRetrieval.notifyIteratorExhausted(); } O retVal = null; if (!hasNextValue && ((outstandingFutures.get() > 0) || !completedObjects.isEmpty())) { try { final Object completedObj = completedObjects.take(); if (completedObj == POISON) { retVal = null; } else { retVal = (O) completedObj; } } catch (final InterruptedException e) { LOGGER.error("Unable to take value from blocking queue", e); } } return retVal; }
private void deferredReadFields() { fieldValuesFuture = asyncRetrieval.getDataAsync(getInternalAdapterId(), getDataId()); } }