@Override public void enableYielding(YieldCallback<Key> yield) { this.yield = Optional.of(yield); // if we require row isolation, then we cannot support yielding in the middle. if (!onlySwitchAfterRow) { if (iter != null) { iter.enableYielding(yield); } } }
@Override public void seek(Range range, Collection<ByteSequence> columnFamilies, boolean inclusive) throws IOException { synchronized (copies) { this.range = range; this.inclusive = inclusive; this.columnFamilies = columnFamilies; if (iter == null) { iter = source.iterator(); if (!onlySwitchAfterRow && yield.isPresent()) { iter.enableYielding(yield.get()); } } readNext(true); } }
private boolean switchSource() throws IOException { if (!source.isCurrent()) { source = source.getNewDataSource(); iter = source.iterator(); if (!onlySwitchAfterRow && yield.isPresent()) { iter.enableYielding(yield.get()); } return true; } return false; }
iter.enableYielding(yield);
mmfi.enableYielding(yield); boolean yielded = false;
@Override public IteratorTestOutput test(IteratorTestInput testInput) { final SortedKeyValueIterator<Key,Value> skvi = IteratorTestUtil.instantiateIterator(testInput); final SortedKeyValueIterator<Key,Value> source = IteratorTestUtil.createSource(testInput); try { skvi.init(source, testInput.getIteratorOptions(), new SimpleIteratorEnvironment()); YieldCallback<Key> yield = new YieldCallback<>(); skvi.enableYielding(yield); skvi.seek(testInput.getRange(), testInput.getFamilies(), testInput.isInclusive()); return new IteratorTestOutput(consume(testInput, skvi, yield)); } catch (IOException e) { return new IteratorTestOutput(e); } }