X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/84b46c356ebc657a292ebe616eb51c821772da8f..98216d409fb8f0b95f5bf01e59ae36c2b0a90210:/include/wx/stream.h diff --git a/include/wx/stream.h b/include/wx/stream.h index df2cf2efe0..c9d0bb7b84 100644 --- a/include/wx/stream.h +++ b/include/wx/stream.h @@ -28,7 +28,7 @@ class WXDLLEXPORT wxOutputStream; typedef wxInputStream& (*__wxInputManip)(wxInputStream&); typedef wxOutputStream& (*__wxOutputManip)(wxOutputStream&); -wxOutputStream& WXDLLEXPORT wxEndL(wxOutputStream& o_stream); +WXDLLEXPORT wxOutputStream& wxEndL(wxOutputStream& o_stream); // --------------------------------------------------------------------------- // Stream buffer @@ -37,7 +37,7 @@ wxOutputStream& WXDLLEXPORT wxEndL(wxOutputStream& o_stream); class WXDLLEXPORT wxStreamBuffer { public: typedef enum { - read, write, read_write + read = 0, write, read_write } BufMode; // ----------- @@ -51,9 +51,12 @@ class WXDLLEXPORT wxStreamBuffer { // ----------- // Filtered IO // ----------- - void Read(void *buffer, size_t size); - void Write(const void *buffer, size_t size); - bool WriteBack(const char *buffer, size_t size); + size_t Read(void *buffer, size_t size); + size_t Read(wxStreamBuffer *buf); + size_t Write(const void *buffer, size_t size); + size_t Write(wxStreamBuffer *buf); + + size_t WriteBack(const char *buffer, size_t size); bool WriteBack(char c); char GetChar(); void PutChar(char c); @@ -78,7 +81,12 @@ class WXDLLEXPORT wxStreamBuffer { bool FlushBuffer(); bool FillBuffer(); - size_t GetDataLeft() const; + size_t GetDataLeft(); + + // -------------- + // Administration + // -------------- + wxStreamBase *Stream() { return m_stream; } protected: char *AllocSpaceWBack(size_t needed_size); @@ -98,7 +106,7 @@ class WXDLLEXPORT wxStreamBuffer { wxStreamBase *m_stream; BufMode m_mode; - bool m_destroybuf; + bool m_destroybuf, m_destroystream; }; // --------------------------------------------------------------------------- @@ -106,8 +114,10 @@ class WXDLLEXPORT wxStreamBuffer { // --------------------------------------------------------------------------- typedef enum { - wxStream_NOERROR, - wxStream_EOF + wxStream_NOERROR = 0, + wxStream_EOF, + wxStream_WRITE_ERR, + wxStream_READ_ERR } wxStreamError; class WXDLLEXPORT wxStreamBase { @@ -140,7 +150,7 @@ class WXDLLEXPORT wxInputStream: public wxStreamBase { // IO functions virtual char Peek(); char GetC(); - wxInputStream& Read(void *buffer, size_t size); + virtual wxInputStream& Read(void *buffer, size_t size); wxInputStream& Read(wxOutputStream& stream_out); // Position functions @@ -181,7 +191,7 @@ class WXDLLEXPORT wxOutputStream: public wxStreamBase { wxOutputStream(wxStreamBuffer *sbuf); virtual ~wxOutputStream(); - wxOutputStream& Write(const void *buffer, size_t size); + virtual wxOutputStream& Write(const void *buffer, size_t size); wxOutputStream& Write(wxInputStream& stream_in); off_t SeekO(off_t pos, wxSeekMode mode = wxFromStart);