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
;