X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a8d2cf4e70be848aaa52b1bff27b52440da1b648..4e2251ecd324ba89c486434485efcb1d32ee7dca:/include/wx/stream.h diff --git a/include/wx/stream.h b/include/wx/stream.h index cad5148ab9..2452244060 100644 --- a/include/wx/stream.h +++ b/include/wx/stream.h @@ -42,6 +42,8 @@ enum wxStreamError wxSTREAM_READ_ERROR // generic read error }; +const int wxEOF = -1; + // ============================================================================ // base stream classes: wxInputStream and wxOutputStream // ============================================================================ @@ -106,11 +108,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 // @@ -327,23 +329,18 @@ protected: 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(); -class WXDLLIMPEXP_BASE wxFilterClassFactory : public wxObject +class WXDLLIMPEXP_BASE wxFilterClassFactoryBase : public wxObject { public: - virtual ~wxFilterClassFactory() { } - - virtual wxFilterInputStream *NewStream(wxInputStream& stream) const = 0; - virtual wxFilterOutputStream *NewStream(wxOutputStream& stream) const = 0; - virtual wxFilterInputStream *NewStream(wxInputStream *stream) const = 0; - virtual wxFilterOutputStream *NewStream(wxOutputStream *stream) const = 0; + virtual ~wxFilterClassFactoryBase() { } wxString GetProtocol() const { return wxString(*GetProtocols()); } wxString PopExtension(const wxString& location) const; @@ -355,6 +352,22 @@ public: wxStreamProtocolType type = wxSTREAM_PROTOCOL) const; +protected: + wxString::size_type FindExtension(const wxChar *location) const; + + DECLARE_ABSTRACT_CLASS(wxFilterClassFactoryBase) +}; + +class WXDLLIMPEXP_BASE wxFilterClassFactory : public wxFilterClassFactoryBase +{ +public: + virtual ~wxFilterClassFactory() { } + + virtual wxFilterInputStream *NewStream(wxInputStream& stream) const = 0; + virtual wxFilterOutputStream *NewStream(wxOutputStream& stream) const = 0; + virtual wxFilterInputStream *NewStream(wxInputStream *stream) const = 0; + virtual wxFilterOutputStream *NewStream(wxOutputStream *stream) const = 0; + static const wxFilterClassFactory *Find(const wxChar *protocol, wxStreamProtocolType type = wxSTREAM_PROTOCOL); @@ -371,8 +384,6 @@ protected: wxFilterClassFactory& operator=(const wxFilterClassFactory&) { return *this; } - wxString::size_type FindExtension(const wxChar *location) const; - private: static wxFilterClassFactory *sm_first; wxFilterClassFactory *m_next;