@Override public void encode(OutputStream out, TransactionSnapshot snapshot) { SnapshotCodec codec = getCurrentCodec(); try { new BinaryEncoder(out).writeInt(codec.getVersion()); } catch (IOException e) { LOG.error("Unable to write transaction state version: ", e); throw Throwables.propagate(e); } codec.encode(out, snapshot); }
@Override public void encode(OutputStream out, TransactionSnapshot snapshot) { try { BinaryEncoder encoder = new BinaryEncoder(out); encoder.writeLong(snapshot.getTimestamp()); encoder.writeLong(snapshot.getReadPointer()); encoder.writeLong(snapshot.getWritePointer()); encodeInvalid(encoder, snapshot.getInvalid()); encodeInProgress(encoder, snapshot.getInProgress()); encodeChangeSets(encoder, snapshot.getCommittingChangeSets()); encodeChangeSets(encoder, snapshot.getCommittedChangeSets()); } catch (IOException e) { LOG.error("Unable to serialize transaction state: ", e); throw Throwables.propagate(e); } }