public bool SetBlockData(FileBlockDataPart blockData) { if (_position != blockData.BlockOffset) { throw new BitChatException("Invalid data offset received from peer."); } Buffer.BlockCopy(blockData.BlockDataPart, 0, _blockData, blockData.BlockOffset, blockData.Length); _position = blockData.BlockOffset + blockData.Length; _lastResponse = DateTime.UtcNow; if (_position == _blockData.Length) { _sharedFile.OnBlockDownloaded(this); return(true); } return(false); }
public static byte[] CreateFileBlockResponse(FileBlockDataPart blockData) { using (MemoryStream mS = new MemoryStream(64 * 1024)) { mS.WriteByte((byte)BitChatMessageType.FileBlockResponse); //1 byte blockData.WriteTo(mS); return mS.ToArray(); } }
public bool SetBlockData(FileBlockDataPart blockData) { if (_position != blockData.BlockOffset) throw new BitChatException("Invalid data offset received from peer."); Buffer.BlockCopy(blockData.BlockDataPart, 0, _blockData, blockData.BlockOffset, blockData.Length); _position = blockData.BlockOffset + blockData.Length; _lastResponse = DateTime.UtcNow; if (_position == _blockData.Length) { _sharedFile.OnBlockDownloaded(this); return true; } return false; }