private Proto.Msg.DeltaPropagation DeltaPropagationToProto(DeltaPropagation msg) { var proto = new Proto.Msg.DeltaPropagation { FromNode = SerializationSupport.UniqueAddressToProto(msg.FromNode) }; if (msg.ShouldReply) { proto.Reply = msg.ShouldReply; } foreach (var entry in msg.Deltas) { var d = entry.Value; var delta = new Proto.Msg.DeltaPropagation.Types.Entry { Key = entry.Key, FromSeqNr = d.FromSeqNr, Envelope = DataEnvelopeToProto(d.DataEnvelope) }; if (d.ToSeqNr != d.FromSeqNr) { delta.ToSeqNr = d.ToSeqNr; } proto.Entries.Add(delta); } return(proto); }
private Proto.Msg.DataEnvelope.Types.PruningEntry PruningToProto(UniqueAddress addr, IPruningState pruning) { var proto = new Proto.Msg.DataEnvelope.Types.PruningEntry { RemovedAddress = SerializationSupport.UniqueAddressToProto(addr) }; switch (pruning) { case PruningPerformed performed: proto.Performed = true; proto.ObsoleteTime = performed.ObsoleteTime.Ticks; break; case PruningInitialized init: proto.Performed = false; proto.OwnerAddress = SerializationSupport.UniqueAddressToProto(init.Owner); foreach (var address in init.Seen) { proto.Seen.Add(SerializationSupport.AddressToProto(address)); } break; } return(proto); }
private Proto.Msg.Read ReadToProto(Read read) { var proto = new Proto.Msg.Read { Key = read.Key }; if (!(read.FromNode is null)) { proto.FromNode = SerializationSupport.UniqueAddressToProto(read.FromNode); } return(proto); }
private Proto.Msg.Write WriteToProto(Write write) { var proto = new Proto.Msg.Write { Key = write.Key, Envelope = DataEnvelopeToProto(write.Envelope), }; if (!(write.FromNode is null)) { proto.FromNode = SerializationSupport.UniqueAddressToProto(write.FromNode); } return(proto); }