/** * add a single lost packet number * @param singleSequenceNumber */ public void AddLossInfo(long singleSequenceNumber) { byte[] enc = PacketUtil.EncodeSetHighest(false, singleSequenceNumber); try { lossInfo.Write(enc, 0, enc.Length); } catch (IOException ignore) { } }
/** * add an interval of lost packet numbers * @param firstSequenceNumber * @param lastSequenceNumber */ public void AddLossInfo(long firstSequenceNumber, long lastSequenceNumber) { //check if we really need an interval if (lastSequenceNumber - firstSequenceNumber == 0) { AddLossInfo(firstSequenceNumber); return; } //else add an interval byte[] enc1 = PacketUtil.EncodeSetHighest(true, firstSequenceNumber); byte[] enc2 = PacketUtil.EncodeSetHighest(false, lastSequenceNumber); try { lossInfo.Write(enc1, 0, enc1.Length); lossInfo.Write(enc2, 0, enc2.Length); } catch (IOException ignore) { } }