OLD | NEW |
| (Empty) |
1 // OutBuffer.cs | |
2 | |
3 namespace SevenZip.Buffer | |
4 { | |
5 public class OutBuffer | |
6 { | |
7 byte[] m_Buffer; | |
8 uint m_Pos; | |
9 uint m_BufferSize; | |
10 System.IO.Stream m_Stream; | |
11 ulong m_ProcessedSize; | |
12 | |
13 public OutBuffer(uint bufferSize) | |
14 { | |
15 m_Buffer = new byte[bufferSize]; | |
16 m_BufferSize = bufferSize; | |
17 } | |
18 | |
19 public void SetStream(System.IO.Stream stream) { m_Stream = stre
am; } | |
20 public void FlushStream() { m_Stream.Flush(); } | |
21 public void CloseStream() { m_Stream.Close(); } | |
22 public void ReleaseStream() { m_Stream = null; } | |
23 | |
24 public void Init() | |
25 { | |
26 m_ProcessedSize = 0; | |
27 m_Pos = 0; | |
28 } | |
29 | |
30 public void WriteByte(byte b) | |
31 { | |
32 m_Buffer[m_Pos++] = b; | |
33 if (m_Pos >= m_BufferSize) | |
34 FlushData(); | |
35 } | |
36 | |
37 public void FlushData() | |
38 { | |
39 if (m_Pos == 0) | |
40 return; | |
41 m_Stream.Write(m_Buffer, 0, (int)m_Pos); | |
42 m_Pos = 0; | |
43 } | |
44 | |
45 public ulong GetProcessedSize() { return m_ProcessedSize + m_Pos
; } | |
46 } | |
47 } | |
OLD | NEW |