+// ---------------------------------------------------------------------------
+// wxStream: base classes
+// ---------------------------------------------------------------------------
+
+typedef enum {
+ wxStream_NOERROR,
+ wxStream_EOF
+} wxStreamError;
+
+class WXDLLEXPORT wxStreamBase {
+ public:
+ wxStreamBase();
+ virtual ~wxStreamBase();
+
+ wxStreamError LastError() const { return m_lasterror; }
+ virtual size_t StreamSize() const { return ~((size_t)0); }
+
+ protected:
+ friend class wxStreamBuffer;
+
+ virtual size_t OnSysRead(void *buffer, size_t bufsize);
+ virtual size_t OnSysWrite(const void *buffer, size_t bufsize);
+ virtual off_t OnSysSeek(off_t seek, wxSeekMode mode);
+ virtual off_t OnSysTell() const;
+
+ protected:
+ size_t m_lastcount;
+ wxStreamError m_lasterror;
+};
+
+class WXDLLEXPORT wxInputStream: public wxStreamBase {