Пример #1
0
        private void CommutativeRemove(CRDT.Application.Commutative.Set.OUR_OptimizedSetWithVCService <TestType> sourceReplica, TestType value, VectorClock vectorClock, List <CRDT.Application.Commutative.Set.OUR_OptimizedSetWithVCService <TestType> > downstreamReplicas)
        {
            var observedTags = sourceReplica.GetTags(value.Id);

            sourceReplica.LocalRemove(value, observedTags, vectorClock);

            foreach (var downstreamReplica in downstreamReplicas)
            {
                downstreamReplica.DownstreamRemove(value, observedTags, vectorClock);
            }
        }
Пример #2
0
        private void CommutativeAdd(CRDT.Application.Commutative.Set.OUR_OptimizedSetWithVCService <TestType> sourceReplica, TestType value, VectorClock vectorClock, List <CRDT.Application.Commutative.Set.OUR_OptimizedSetWithVCService <TestType> > downstreamReplicas)
        {
            var tag = Guid.NewGuid();

            sourceReplica.LocalAdd(value, tag, vectorClock);

            foreach (var downstreamReplica in downstreamReplicas)
            {
                downstreamReplica.DownstreamAdd(value, tag, vectorClock);
            }
        }
Пример #3
0
        private Dictionary <Node, CRDT.Application.Commutative.Set.OUR_OptimizedSetWithVCService <TestType> > CreateCommutativeReplicas(List <Node> nodes)
        {
            var dictionary = new Dictionary <Node, CRDT.Application.Commutative.Set.OUR_OptimizedSetWithVCService <TestType> >();

            foreach (var node in nodes)
            {
                var repository = new OUR_OptimizedSetWithVCRepository();
                var service    = new CRDT.Application.Commutative.Set.OUR_OptimizedSetWithVCService <TestType>(repository);

                dictionary.Add(node, service);
            }

            return(dictionary);
        }