/** * Processes the last committed version (if any) from an update. * * @param lastCommittedVersion committed version information (may be null) */ private void processLastCommittedVersion(HashedVersion lastCommittedVersion) throws ChannelException { if (lastCommittedVersion != null) { // Synthesize a "sequenceVersion" for the committed message to put it in // the most useful place in the message queue. If possible use the // committed version, which causes it to be delivered to the receiver in // sequence with other messages. If the queue has already progressed past // that, place the message at the beginning of the queue, namely at // lastServerVersion. long committedVersion = lastCommittedVersion.getVersion(); long sequenceVersion = Math.max(committedVersion, lastServerVersion); onServerMessage(new ServerMessage.Committed(sequenceVersion, committedVersion)); } }
/** * Processes deltas from an incoming server message. * * @param deltas container with deltas */ private void processDeltas(List<TransformedWaveletDelta> deltas) throws ChannelException { for (TransformedWaveletDelta delta : deltas) { logDelta("Incoming", delta); ServerMessage.ServerDelta serverDelta = new ServerMessage.ServerDelta(delta); int queuePos = onServerMessage(serverDelta); checkForMissingMessages(serverDelta, queuePos); } }