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)); }
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)); }