]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/stream.h
Refactor all code common to X11 OpenGL implementations into glx11.h/.cpp
[wxWidgets.git] / include / wx / stream.h
index 505bb3462581544c8466178cd4c946ac4a416487..f0c1ce170cc51138b5f080978f6e07fd2a5914bc 100644 (file)
@@ -42,6 +42,8 @@ enum wxStreamError
     wxSTREAM_READ_ERROR         // generic read error
 };
 
+const int wxEOF = -1;
+
 // ============================================================================
 // base stream classes: wxInputStream and wxOutputStream
 // ============================================================================
@@ -50,7 +52,7 @@ enum wxStreamError
 // wxStreamBase: common (but non virtual!) base for all stream classes
 // ---------------------------------------------------------------------------
 
-class WXDLLIMPEXP_BASE wxStreamBase
+class WXDLLIMPEXP_BASE wxStreamBase : public wxObject
 {
 public:
     wxStreamBase();
@@ -80,6 +82,7 @@ protected:
 
     friend class wxStreamBuffer;
 
+    DECLARE_ABSTRACT_CLASS(wxStreamBase)
     DECLARE_NO_COPY_CLASS(wxStreamBase)
 };
 
@@ -106,11 +109,11 @@ public:
     // undefined), otherwise 1
     virtual char Peek();
 
-    // return one character from the stream, blocking until it appears if
+    // return one byte from the stream, blocking until it appears if
     // necessary
     //
-    // if EOF, return value is undefined and LastRead() will return 0 and not 1
-    char GetC();
+    // on success returns a value between 0 - 255, or wxEOF on EOF or error.
+    int GetC();
 
     // read at most the given number of bytes from the stream
     //
@@ -214,6 +217,7 @@ protected:
 
     friend class wxStreamBuffer;
 
+    DECLARE_ABSTRACT_CLASS(wxInputStream)
     DECLARE_NO_COPY_CLASS(wxInputStream)
 };
 
@@ -249,6 +253,7 @@ protected:
 
     friend class wxStreamBuffer;
 
+    DECLARE_ABSTRACT_CLASS(wxOutputStream)
     DECLARE_NO_COPY_CLASS(wxOutputStream)
 };
 
@@ -276,6 +281,7 @@ protected:
 
     size_t m_currentPos;
 
+    DECLARE_DYNAMIC_CLASS(wxCountingOutputStream)
     DECLARE_NO_COPY_CLASS(wxCountingOutputStream)
 };
 
@@ -301,6 +307,7 @@ protected:
     wxInputStream *m_parent_i_stream;
     bool m_owns;
 
+    DECLARE_ABSTRACT_CLASS(wxFilterInputStream)
     DECLARE_NO_COPY_CLASS(wxFilterInputStream)
 };
 
@@ -322,15 +329,16 @@ protected:
     wxOutputStream *m_parent_o_stream;
     bool m_owns;
 
+    DECLARE_ABSTRACT_CLASS(wxFilterOutputStream)
     DECLARE_NO_COPY_CLASS(wxFilterOutputStream)
 };
 
 enum wxStreamProtocolType
 {
-    wxSTREAM_PROTOCOL,      // wxFileSystem protocol (should be only one)
-    wxSTREAM_MIMETYPE,      // Mime types the stream handles
-    wxSTREAM_ENCODING,      // The http Content-Encodings the stream handles
-    wxSTREAM_FILEEXTENSION  // File extensions the stream handles
+    wxSTREAM_PROTOCOL,  // wxFileSystem protocol (should be only one)
+    wxSTREAM_MIMETYPE,  // MIME types the stream handles
+    wxSTREAM_ENCODING,  // The HTTP Content-Encodings the stream handles
+    wxSTREAM_FILEEXT    // File extensions the stream handles
 };
 
 void WXDLLIMPEXP_BASE wxUseFilterClasses();