Esempio n. 1
0
            public override void Fill(StreamCache.DataBlock uncompressedBlockToReturn)
            {
                long compressedDataPos;
                int  compressedDataSize;

                GetCompressedBlockInfo(uncompressedBlockToReturn.m_position, out compressedDataPos, out compressedDataSize);
                using (var compressedData = new StreamCacheStream(m_input, compressedDataPos, compressedDataSize))
                    using (var uncompressedData = new DeflateStream(compressedData, CompressionMode.Decompress))
                        uncompressedBlockToReturn.m_len = uncompressedData.Read(uncompressedBlockToReturn.m_data, 0, uncompressedBlockToReturn.m_data.Length);

                uncompressedBlockToReturn.m_filled = true;
            }
Esempio n. 2
0
 public override void Fill(StreamCache.DataBlock block)
 {
     lock (this)
     {
         if (m_curPostion != block.m_position)
         {
             m_baseStream.Position = block.m_position;
         }
         block.m_len  = m_baseStream.Read(block.m_data, 0, block.m_data.Length);
         m_curPostion = block.m_position + block.m_len;
     }
 }