예제 #1
0
        public void SentPacket(SequenceId sequenceId, long time, ILog log)
        {
            //log.Info($"sent packet at timen {sequenceId} time {time}");
            var p = new PacketHistoryItem {
                Time = time, SequenceId = sequenceId
            };

            items.Enqueue(p);
        }
예제 #2
0
 public bool ReceivedConfirmation(SequenceId sequenceId, out PacketHistoryItem foundItem, ILog log)
 {
     //log.Info($"received confirmation {sequenceId} last {lastSequenceId}");
     if (sequenceId.Value == lastSequenceId.Value)
     {
         foundItem = null;
         return(false);
     }
     while (true)
     {
         var item = items.Dequeue();
         if (sequenceId.Value == item.SequenceId.Value)
         {
             lastSequenceId = sequenceId;
             foundItem      = item;
             return(true);
         }
     }
 }