예제 #1
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());
            }
        }
        public void synchronizeAllBeliefs()
        {
            if (protocol.getConnection().getRemoteAddress() == null)
            {
                return;
            }

            RepositoryStateSerializer serializer = new RepositoryStateSerializer();
            NetworkBuffer             buffer     = serializer.serialize(repo.CurrentState());
            BSPMessage message = new BSPMessage(protocol.getConnection().getRemoteAddress(),
                                                BSPMessageType.SYNC,
                                                protocol.getAgentID(),
                                                buffer);

            protocol.getConnection().send(message);
        }