public void handleMessage(BSPMessage message) { RepositoryStateSerializer serializer = new RepositoryStateSerializer(); RepositoryState incomingState = serializer.deserialize(message.getData()); if (incomingState.RevisionNumber() > remoteState.RevisionNumber()) { this.remoteState = incomingState; IEnumerable <CachedBelief> changedBeliefs = repo.Diff(remoteState); foreach (CachedBelief belief in changedBeliefs) { protocol.post(belief); } } }
public void SyncWith(BeliefRepository other) { foreach (CachedBelief belief in Diff(other.CurrentState())) { other.Commit(belief.GetBelief()); } foreach (CachedBelief belief in other.Diff(CurrentState())) { other.Commit(belief.GetBelief()); } }