public void CancelEncoding() { var length = new CancelMessage(15, 1024, 16384).Encode(buffer, offset); Assert.Equal("00-00-00-0D-08-00-00-00-0F-00-00-04-00-00-00-40-00", BitConverter.ToString(buffer, offset, length)); }
protected virtual void HandleCancelMessage(PeerId id, CancelMessage message) { PeerMessage msg; for (int i = 0; i < id.QueueLength; i++) { msg = id.Dequeue(); if (!(msg is PieceMessage)) { id.Enqueue(msg); continue; } PieceMessage piece = msg as PieceMessage; if (!(piece.PieceIndex == message.PieceIndex && piece.StartOffset == message.StartOffset && piece.RequestLength == message.RequestLength)) { id.Enqueue(msg); } else { id.IsRequestingPiecesCount--; } } for (int i = 0; i < id.PieceReads.Count; i++) { if (id.PieceReads[i].PieceIndex == message.PieceIndex && id.PieceReads[i].StartOffset == message.StartOffset && id.PieceReads[i].RequestLength == message.RequestLength) { id.IsRequestingPiecesCount--; id.PieceReads.RemoveAt(i); break; } } }