private byte[] SnapshotToProto(IReceiverStateSnapshot snapshot) { var sP = new Msgs.ReceiverStateSnapshot(); foreach (var trackedSender in snapshot.TrackedSenders) { sP.TrackedSenders.Add(trackedSender.Key, trackedSender.Value.Ticks); } foreach (var trackerIds in snapshot.TrackedIds) { var rcp = new ReceivedMessageCollection(); rcp.ConfirmationIds.Add(trackerIds.Value); sP.TrackedIds.Add(trackerIds.Key, rcp); } return(sP.ToByteArray()); }
public IReceiverState FromSnapshot(IReceiverStateSnapshot snapshot) { foreach (var item in snapshot.TrackedIds) { _trackedIds[item.Key] = new CircularBuffer <long>(MaxConfirmationsPerSender); foreach (var id in item.Value) { _trackedIds[item.Key].Enqueue(id); } } foreach (var item in snapshot.TrackedSenders) { _trackedLru[item.Key] = item.Value; } return(this); }
public IReceiverState FromSnapshot(IReceiverStateSnapshot snapshot) { throw new NotImplementedException(); }