Ejemplo n.º 1
0
            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);
            }
Ejemplo n.º 2
0
        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();
            }
        }
Ejemplo n.º 3
0
            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;
            }