X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a5ea75bc6a7e10e71d23ed4a0899bba30c2f5077..f84a986cfc6e512240b77fcdfbacc769b8a0cd02:/include/wx/sstream.h?ds=sidebyside diff --git a/include/wx/sstream.h b/include/wx/sstream.h index e188c1a00c..02f878681b 100644 --- a/include/wx/sstream.h +++ b/include/wx/sstream.h @@ -25,27 +25,29 @@ class WXDLLIMPEXP_BASE wxStringInputStream : public wxInputStream public: // ctor associates the stream with the given string which makes a copy of // it - wxStringInputStream(const wxString& s) - : m_str(s) - { - m_pos = 0; - } + wxStringInputStream(const wxString& s); + virtual ~wxStringInputStream(); - virtual size_t GetSize() const { return m_str.length(); } + virtual wxFileOffset GetLength() const; protected: - virtual off_t OnSysSeek(off_t ofs, wxSeekMode mode); - virtual off_t OnSysTell() const; + virtual wxFileOffset OnSysSeek(wxFileOffset ofs, wxSeekMode mode); + virtual wxFileOffset OnSysTell() const; virtual size_t OnSysRead(void *buffer, size_t size); private: - // the string we're reading from + // the string that was passed in the ctor wxString m_str; + // the buffer we're reading from + char* m_buf; + + // length of the buffer we're reading from + size_t m_len; + // position in the stream in bytes, *not* in chars size_t m_pos; - DECLARE_NO_COPY_CLASS(wxStringInputStream) }; @@ -68,7 +70,7 @@ public: const wxString& GetString() const { return *m_str; } protected: - virtual off_t OnSysTell() const; + virtual wxFileOffset OnSysTell() const; virtual size_t OnSysWrite(const void *buffer, size_t size); private: @@ -81,6 +83,12 @@ private: // position in the stream in bytes, *not* in chars size_t m_pos; +#if wxUSE_WCHAR_T + // string encoding converter (UTF8 is the standard) + wxMBConvUTF8 m_conv; +#else + wxMBConv m_conv; +#endif DECLARE_NO_COPY_CLASS(wxStringOutputStream) };