]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/stream.h
wxDropSource should have def ctor
[wxWidgets.git] / include / wx / stream.h
index e4a184619e089bc9543f1a1eea009cb6397430b3..2e57b4ce7b3e3c651b89b87ba90965ad3ff7a821 100644 (file)
@@ -38,12 +38,8 @@ WXDLLEXPORT wxOutputStream& wxEndL(wxOutputStream& o_stream);
 // wxStream: base classes
 // ---------------------------------------------------------------------------
 
-#define wxStream_NOERROR    wxSTREAM_NOERROR
-#define wxStream_EOF        wxSTREAM_EOF
-#define wxStream_WRITE_ERR  wxSTREAM_WRITE_ERROR
-#define wxStream_READ_ERR   wxSTREAM_READ_ERROR
-
-typedef enum {
+typedef enum
+{
   wxSTREAM_NO_ERROR = 0,
   wxSTREAM_NO_ERR = wxSTREAM_NO_ERROR,
   wxSTREAM_NOERROR = wxSTREAM_NO_ERROR,
@@ -58,14 +54,24 @@ typedef enum {
 
 } wxStreamError;
 
+// compatibility
+#define wxStream_NOERROR    wxSTREAM_NOERROR
+#define wxStream_EOF        wxSTREAM_EOF
+#define wxStream_WRITE_ERR  wxSTREAM_WRITE_ERROR
+#define wxStream_READ_ERR   wxSTREAM_READ_ERROR
+
 class WXDLLEXPORT wxStreamBase
 {
 public:
     wxStreamBase();
     virtual ~wxStreamBase();
 
-    bool operator!() const { return (LastError() != wxSTREAM_NOERROR); }
+    // error testing
     wxStreamError LastError() const { return m_lasterror; }
+    wxStreamError GetLastError() const { return m_lasterror; }
+    bool IsOk() const { return LastError() == wxSTREAM_NOERROR; }
+    bool operator!() const { return LastError() != wxSTREAM_NOERROR; }
+
     virtual size_t GetSize() const { return ~((size_t)0); }
     size_t StreamSize() const { return GetSize(); }
 
@@ -87,6 +93,9 @@ public:
     wxInputStream();
     virtual ~wxInputStream();
 
+    // is the stream at EOF?
+    virtual bool Eof() const;
+
     // IO functions
     virtual char Peek();
     char GetC();
@@ -149,7 +158,7 @@ public:
 // A stream for measuring streamed output
 // ---------------------------------------------------------------------------
 
-class wxCountingOutputStream: public wxOutputStream
+class WXDLLEXPORT wxCountingOutputStream: public wxOutputStream
 {
 public:
     wxCountingOutputStream();
@@ -165,7 +174,6 @@ protected:
     size_t m_currentPos;
 };
 
-
 // ---------------------------------------------------------------------------
 // "Filter" streams
 // ---------------------------------------------------------------------------
@@ -265,7 +273,7 @@ protected:
 // wxBufferedStreams
 // ---------------------------------------------------------------------------
 
-class wxBufferedInputStream: public wxFilterInputStream
+class WXDLLEXPORT wxBufferedInputStream: public wxFilterInputStream
 {
 public:
     wxBufferedInputStream(wxInputStream& stream);
@@ -288,7 +296,7 @@ protected:
     wxStreamBuffer *m_i_streambuf;
 };
 
-class wxBufferedOutputStream: public wxFilterOutputStream
+class WXDLLEXPORT wxBufferedOutputStream: public wxFilterOutputStream
 {
 public:
     wxBufferedOutputStream(wxOutputStream& stream);