3 namespace SevenZip.Buffer
11 System.IO.Stream m_Stream;
12 bool m_StreamWasExhausted;
13 ulong m_ProcessedSize;
15 public InBuffer(uint bufferSize)
17 m_Buffer = new byte[bufferSize];
18 m_BufferSize = bufferSize;
21 public void Init(System.IO.Stream stream)
27 m_StreamWasExhausted = false;
30 public bool ReadBlock()
32 if (m_StreamWasExhausted)
34 m_ProcessedSize += m_Pos;
35 int aNumProcessedBytes = m_Stream.Read(m_Buffer, 0, (int)m_BufferSize);
37 m_Limit = (uint)aNumProcessedBytes;
38 m_StreamWasExhausted = (aNumProcessedBytes == 0);
39 return (!m_StreamWasExhausted);
43 public void ReleaseStream()
49 public bool ReadByte(byte b) // check it
54 b = m_Buffer[m_Pos++];
58 public byte ReadByte()
60 // return (byte)m_Stream.ReadByte();
64 return m_Buffer[m_Pos++];
67 public ulong GetProcessedSize()
69 return m_ProcessedSize + m_Pos;