public void DeliveredTuples(DadTupleId inputId, List <DadTupleId> outputIds) { Console.WriteLine("[Services] Receiving delivered status of {0} tuple(s) computed from {1}.", outputIds.Count, inputId); Group.AddDelivered(inputId); Group.DeleteProcessed(outputIds); }
public void AddDelivered(DadTupleId upstreamId) { Debug.Assert(!Delivered.Contains(upstreamId)); Delivered.Add(upstreamId); // TODO: remove from shared? }
public void SaveProcessedTuples(DadTupleId oldId, List <DadTuple> processedTuples) { Console.WriteLine("[Services] Receiving processed tuples of {0}.", oldId); TupleProcessor.TupleWasProcessed(Group.GetInputTupleByUpstreamId(oldId)); Group.SaveProcessedTuples(oldId, processedTuples); }
public void SaveProcessedTuples(DadTupleId upstreamId, List <DadTuple> processedTuples) { Debug.Assert(!Processed.ContainsKey(upstreamId)); Debug.Assert(!Delivered.Contains(upstreamId)); foreach (var processedTuple in processedTuples) { Debug.Assert(!Deleted.Contains(processedTuple.Id)); } Processed.Add(upstreamId, processedTuples); // TODO: remove from shared? }
private IReplica GetOwnerOfTuple(DadTupleId upstreamId) { return(AliveMembers.SingleOrDefault(peer => peer.IsOwner(upstreamId))); }
public DadTuple GetInputTupleByUpstreamId(DadTupleId upstreamId) { return(Shared.Keys.FirstOrDefault(t => t.Id.Equals(upstreamId))); }
public void DeliveredTuples(DadTupleId inputId, List <DadTupleId> outputIds) { Proxy.DeliveredTuples(inputId, outputIds); }
public void SaveProcessedTuples(DadTupleId oldId, List <DadTuple> outTuples) { Proxy.SaveProcessedTuples(oldId, outTuples); }