X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/84b46c356ebc657a292ebe616eb51c821772da8f..00cd8a958f1c032ac48bcc240ee4098f4c8bfa46:/include/wx/stream.h diff --git a/include/wx/stream.h b/include/wx/stream.h index df2cf2efe0..0872a9ba81 100644 --- a/include/wx/stream.h +++ b/include/wx/stream.h @@ -16,6 +16,10 @@ #pragma interface #endif +#include "wx/defs.h" + +#if wxUSE_STREAMS + #include #include "wx/object.h" #include "wx/string.h" @@ -28,7 +32,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 +41,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 +55,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 +85,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 +110,7 @@ class WXDLLEXPORT wxStreamBuffer { wxStreamBase *m_stream; BufMode m_mode; - bool m_destroybuf; + bool m_destroybuf, m_destroystream; }; // --------------------------------------------------------------------------- @@ -106,8 +118,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 +154,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 +195,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); @@ -249,3 +263,7 @@ class WXDLLEXPORT wxFilterOutputStream: public wxOutputStream { }; #endif + // wxUSE_STREAMS + +#endif + // _WX_WXSTREAM_H__