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);
                }
            }
        }
예제 #2
0
        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());
            }
        }