public Block(byte[] data, int pieceIndex, int offset, int length) { Contract.Requires(offset >= 0); Contract.Requires(pieceIndex>=0); Data = data; Info = new BlockInfo(pieceIndex, offset, length); }
public Block(byte[] data, int pieceIndex, int offset, int length) { Data = data; Info = new BlockInfo(pieceIndex, offset, length); }
protected override void HandlePiece(PieceMessage piece, PeerState peer) { var blockInfo = new BlockInfo(piece.Index, piece.Offset, piece.Data.Length); //съобщаваме на BlockStrategistът, че сме получили блок, а той ни казва дали ни е нужен if(BlockStrategist.Received(blockInfo)) { //ако блока е нужен, записваме го WriteBlock(piece); } //понижаване на брояча за блоковете в изчакване peer.PendingBlocks--; //изпращане на нова заявка за блок към пиъра SendBlockRequests(peer); }