- void ResetBuffer();
-
- void SetBufferPosition(char *buffer_position)
- { m_buffer_pos = buffer_position; }
- void SetIntPosition(size_t pos)
- { m_buffer_pos = m_buffer_start + pos; }
- char *GetBufferPosition() const { return m_buffer_pos; }
- size_t GetIntPosition() const { return m_buffer_pos - m_buffer_start; }
-
- char *GetBufferStart() const { return m_buffer_start; }
- char *GetBufferEnd() const { return m_buffer_end; }
- size_t GetBufferSize() const { return m_buffer_size; }
- size_t GetLastAccess() const { return m_buffer_end - m_buffer_start; }
+ char *GetBufferStart() const { return m_buffer_start; }
+ char *GetBufferEnd() const { return m_buffer_end; }
+ char *GetBufferPos() const { return m_buffer_pos; }
+ off_t GetIntPosition() const { return m_buffer_pos-m_buffer_start; }
+ void SetIntPosition(off_t pos) { m_buffer_pos = m_buffer_start+pos; }
+ size_t GetLastAccess() const { return m_buffer_end-m_buffer_start; }
+
+ void Fixed(bool fixed) { m_fixed = fixed; }
+ void Flushable(bool f) { m_flushable = f; }
+
+ bool FlushBuffer();
+ bool FillBuffer();
+ size_t GetDataLeft();
+
+ // --------------
+ // Administration
+ // --------------
+ wxStreamBase *Stream() { return m_stream; }
+
+ protected:
+ char *AllocSpaceWBack(size_t needed_size);
+ size_t GetWBack(char *buf, size_t bsize);
+
+ void GetFromBuffer(void *buffer, size_t size);
+ void PutToBuffer(const void *buffer, size_t size);