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());
        }
示例#2
0
        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);
        }
示例#3
0
 public IReceiverState FromSnapshot(IReceiverStateSnapshot snapshot)
 {
     throw new NotImplementedException();
 }