Пример #1
0
        protected override Block ReadBlock(int index, [NotNull] PipelineInfo pipelineInfo)
        {
            var uncompressedStream = MemoryStreamManager.GetStream("Uncompressed");

            SourceStream.CopyBlockTo(uncompressedStream, pipelineInfo.BlockSize);
            uncompressedStream.Position = 0;

            return(new Block(index, uncompressedStream));
        }
Пример #2
0
        protected override Block ReadBlock(int index, PipelineInfo pipelineInfo)
        {
            var position = ReadInt32();

            if (position < 0 || position >= pipelineInfo.BlockCount)
            {
                throw new PipelineException("Source file corrupted.");
            }

            var compressedLength = ReadInt32();

            if (compressedLength <= 0)
            {
                throw new PipelineException("Source file corrupted.");
            }

            var compressedStream = MemoryStreamManager.GetStream("Compressed");

            SourceStream.CopyBlockTo(compressedStream, compressedLength);
            compressedStream.Position = 0;

            return(new Block(position, compressedStream));
        }