@Override public void getTransformedDeltaHistory(final HashedVersion startVersion, final HashedVersion endVersion, final Receiver<TransformedWaveletDelta> receiver) { try { readDeltasInRange(deltasAccess, cachedDeltas, startVersion, endVersion, new Receiver<WaveletDeltaRecord>() { @Override public boolean put(WaveletDeltaRecord delta) { return receiver.put(delta.getTransformedDelta()); } }); } catch (IOException e) { throw new RuntimeIOException(new IOException(format("Start version : %s, end version: %s", startVersion.toString(), endVersion.toString()), e)); } }
@Override public void getAppliedDeltaHistory(HashedVersion startVersion, HashedVersion endVersion, final Receiver<ByteStringMessage<ProtocolAppliedWaveletDelta>> receiver) { Preconditions.checkArgument(startVersion.getVersion() < endVersion.getVersion()); try { readDeltasInRange(deltasAccess, cachedDeltas, startVersion, endVersion, new Receiver<WaveletDeltaRecord>() { @Override public boolean put(WaveletDeltaRecord delta) { return receiver.put(delta.getAppliedDelta()); } }); } catch (IOException e) { throw new RuntimeIOException(new IOException(format("Start version : %s, end version: %s", startVersion.toString(), endVersion.toString()), e)); } }
/** * Reads all deltas from persistent storage. */ private static ImmutableList<WaveletDeltaRecord> readAll(WaveletDeltaRecordReader reader, ConcurrentNavigableMap<HashedVersion, WaveletDeltaRecord> cachedDeltas) throws IOException { HashedVersion startVersion = HASH_FACTORY.createVersionZero(reader.getWaveletName()); HashedVersion endVersion = reader.getEndVersion(); ListReceiver<WaveletDeltaRecord> receiver = new ListReceiver<WaveletDeltaRecord>(); readDeltasInRange(reader, cachedDeltas, startVersion, endVersion, receiver); return ImmutableList.copyOf(receiver); }