@Override protected void writeReceived(DataOutput out) throws IOException { LinkedList<Long> deltas = new LinkedList<>(); long last = this.nextVersion; // TODO - it would be better just to serialize the longs[] in the BitSet // as is, rather than go through this delta encoding. for (ReceivedVersionsReverseIterator it = receivedVersionsReverseIterator(); it.hasNext();) { long version = it.next(); deltas.addFirst(last - version); last = version; } InternalDataSerializer.writeUnsignedVL(deltas.size(), out); // Number of received versions // Last version is the oldest received version, still need the delta from there to previous deltas.addFirst(last - previousVersion); for (long value : deltas) { InternalDataSerializer.writeUnsignedVL(value, out); } }
exception.receivedVersionsReverseIterator(); it.hasNext();) { long received = it.next();
ex.receivedVersionsReverseIterator(); it.hasNext();) { Long received = it.next(); if (received >= ex.nextVersion) {
protected boolean sameAs(RVVExceptionB ex) { if (!super.sameAs(ex)) { return false; } for (ReceivedVersionsReverseIterator it = receivedVersionsReverseIterator(); it.hasNext();) { if (!ex.contains(it.next())) { return false; } } for (ReceivedVersionsReverseIterator it = ex.receivedVersionsReverseIterator(); it.hasNext();) { if (!contains(it.next())) { return false; } } return true; }
@Override public RVVException changeForm() { // Convert the exception to a bitset exception RVVExceptionB ex = new RVVExceptionB(previousVersion, nextVersion); for (ReceivedVersionsReverseIterator it = this.receivedVersionsReverseIterator(); it .hasNext();) { long next = it.next(); ex.add(next); } return ex; }