public void ReceivedBlock(BlockInfo blockInfo) { blocks[blockInfo.InPieceOffset] = BlockStatus.Received; receivedCount++; // if(receivedCount==blocksCount) // { // complete = true; // // // } }
public void ReceiveBlock(BlockInfo block, byte[] data) { ActivePiece activePiece = activePieces[block.Piece]; if (activePiece.WasRequested(block)) { _dataManager.WriteBlock(_currContext.ToLocal(block), data); activePiece.ReceivedBlock(block); if (activePiece.Complete) { PieceComplete(activePiece); } } }
public static long GetInFilePosition(BlockInfo block) { return ((long) block.PieceIndex << StandardPieceSize) + block.InPieceOffset; }
public bool WasRequested(BlockInfo blockInfo) { return blocks[blockInfo.InPieceOffset] == BlockStatus.Requested; }