tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

OutBuffer.cs (944B)


      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 = stream; }
     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 }