X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8f7173abc4a901249df3ae13a91d3f19874ac269..ce89fdd22ecbaf29569e70733d76c8f1eaca391e:/include/wx/stream.h?ds=inline diff --git a/include/wx/stream.h b/include/wx/stream.h index d9fe1b89c0..efef1ec113 100644 --- a/include/wx/stream.h +++ b/include/wx/stream.h @@ -136,6 +136,28 @@ class WXDLLEXPORT wxOutputStream: public wxStreamBase { wxOutputStream& operator<<( __wxOutputManip func) { return func(*this); } }; +// --------------------------------------------------------------------------- +// A stream for measuring streamed output +// --------------------------------------------------------------------------- + +class wxCountingOutputStream: public wxOutputStream { + public: + wxCountingOutputStream(); + + size_t GetSize() const; + bool Ok() const { return TRUE; } + + protected: + + size_t OnSysWrite(const void *buffer, size_t size); + off_t OnSysSeek(off_t pos, wxSeekMode mode); + off_t OnSysTell() const; + + protected: + size_t m_currentPos; +}; + + // --------------------------------------------------------------------------- // "Filter" streams // --------------------------------------------------------------------------- @@ -148,7 +170,6 @@ class WXDLLEXPORT wxFilterInputStream: public wxInputStream { char Peek() { return m_parent_i_stream->Peek(); } - wxStreamError LastError() const { return m_parent_i_stream->LastError(); } size_t GetSize() const { return m_parent_i_stream->GetSize(); } protected: @@ -161,7 +182,6 @@ class WXDLLEXPORT wxFilterOutputStream: public wxOutputStream { wxFilterOutputStream(wxOutputStream& stream); ~wxFilterOutputStream(); - wxStreamError LastError() const { return m_parent_o_stream->LastError(); } size_t GetSize() const { return m_parent_o_stream->GetSize(); } protected: @@ -194,6 +214,7 @@ class WXDLLEXPORT wxStreamBuffer { size_t Write(const void *buffer, size_t size); size_t Write(wxStreamBuffer *buf); + char Peek(); char GetChar(); void PutChar(char c); off_t Tell() const; @@ -251,6 +272,7 @@ class wxBufferedInputStream: public wxFilterInputStream { wxBufferedInputStream(wxInputStream& stream); ~wxBufferedInputStream(); + char Peek(); wxInputStream& Read(void *buffer, size_t size); // Position functions