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); } }
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); } }
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); }