Exemple #1
0
        public PrunedResult Prune(TimeSpan notUsedSince)
        {
            var targetTime      = CurrentTime - notUsedSince;
            var prunedSenderIds = SenderLru.Where(x => x.Value <= targetTime).Select(x => x.Key).ToList();

            return(new PrunedResult(
                       new DeDuplicatingReceiverModelState(SenderLru.RemoveRange(prunedSenderIds),
                                                           SenderIds.RemoveRange(prunedSenderIds), CurrentTime), prunedSenderIds));
        }
Exemple #2
0
 public override string ToString()
 {
     return
         ($"DeDuplicatingReceiverModel(CurrentTime={CurrentTime}, SenderLru=[{string.Join(",", SenderLru.Select(x => x.Key + ":" + x.Value))}]," +
          $"SenderRecvCounts=[{string.Join(",", SenderIds.Select(x => x.Key + "->" + x.Value.Count))}]");
 }
Exemple #3
0
 private void UpdateLru(string senderId)
 {
     SenderLru = SenderLru.SetItem(senderId, CurrentTime);
 }