X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d65fd4e93f26ba45540ea15d16a3cbfdc78df23e..7bd30a12ade503fd135c686ecc98a6f6d5fecbeb:/include/wx/wfstream.h diff --git a/include/wx/wfstream.h b/include/wx/wfstream.h index 63c90a0961..1c44202177 100644 --- a/include/wx/wfstream.h +++ b/include/wx/wfstream.h @@ -39,7 +39,7 @@ public: wxFileOffset GetLength() const; bool Ok() const { return IsOk(); } - virtual bool IsOk() const { return (wxStreamBase::IsOk() && m_file->IsOpened()); } + virtual bool IsOk() const; bool IsSeekable() const { return m_file->GetKind() == wxFILE_KIND_DISK; } protected: @@ -53,7 +53,7 @@ protected: wxFile *m_file; bool m_file_destroy; - DECLARE_NO_COPY_CLASS(wxFileInputStream) + wxDECLARE_NO_COPY_CLASS(wxFileInputStream); }; class WXDLLIMPEXP_BASE wxFileOutputStream : public wxOutputStream @@ -69,7 +69,7 @@ public: wxFileOffset GetLength() const; bool Ok() const { return IsOk(); } - virtual bool IsOk() const { return (wxStreamBase::IsOk() && m_file->IsOpened()); } + virtual bool IsOk() const; bool IsSeekable() const { return m_file->GetKind() == wxFILE_KIND_DISK; } protected: @@ -83,7 +83,7 @@ protected: wxFile *m_file; bool m_file_destroy; - DECLARE_NO_COPY_CLASS(wxFileOutputStream) + wxDECLARE_NO_COPY_CLASS(wxFileOutputStream); }; class WXDLLIMPEXP_BASE wxTempFileOutputStream : public wxOutputStream @@ -93,8 +93,8 @@ public: virtual ~wxTempFileOutputStream(); bool Close() { return Commit(); } - virtual bool Commit() { return m_file->Commit(); } - virtual void Discard() { m_file->Discard(); } + WXDLLIMPEXP_INLINE_BASE virtual bool Commit() { return m_file->Commit(); } + WXDLLIMPEXP_INLINE_BASE virtual void Discard() { m_file->Discard(); } wxFileOffset GetLength() const { return m_file->Length(); } bool IsSeekable() const { return true; } @@ -108,7 +108,7 @@ protected: private: wxTempFile *m_file; - DECLARE_NO_COPY_CLASS(wxTempFileOutputStream) + wxDECLARE_NO_COPY_CLASS(wxTempFileOutputStream); }; class WXDLLIMPEXP_BASE wxFileStream : public wxFileInputStream, @@ -116,9 +116,35 @@ class WXDLLIMPEXP_BASE wxFileStream : public wxFileInputStream, { public: wxFileStream(const wxString& fileName); + virtual bool IsOk() const; + + // override (some) virtual functions inherited from both classes to resolve + // ambiguities (this wouldn't be necessary if wxStreamBase were a virtual + // base class but it isn't) + + virtual bool IsSeekable() const + { + return wxFileInputStream::IsSeekable(); + } + + virtual wxFileOffset GetLength() const + { + return wxFileInputStream::GetLength(); + } + +protected: + virtual wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode) + { + return wxFileInputStream::OnSysSeek(pos, mode); + } + + virtual wxFileOffset OnSysTell() const + { + return wxFileInputStream::OnSysTell(); + } private: - DECLARE_NO_COPY_CLASS(wxFileStream) + wxDECLARE_NO_COPY_CLASS(wxFileStream); }; #endif //wxUSE_FILE @@ -132,7 +158,7 @@ private: class WXDLLIMPEXP_BASE wxFFileInputStream : public wxInputStream { public: - wxFFileInputStream(const wxString& fileName, const wxChar *mode = _T("rb")); + wxFFileInputStream(const wxString& fileName, const wxString& mode = "rb"); wxFFileInputStream(wxFFile& file); wxFFileInputStream(FILE *file); virtual ~wxFFileInputStream(); @@ -140,7 +166,7 @@ public: wxFileOffset GetLength() const; bool Ok() const { return IsOk(); } - virtual bool IsOk() const { return (wxStreamBase::IsOk() && m_file->IsOpened()); } + virtual bool IsOk() const; bool IsSeekable() const { return m_file->GetKind() == wxFILE_KIND_DISK; } protected: @@ -154,13 +180,13 @@ protected: wxFFile *m_file; bool m_file_destroy; - DECLARE_NO_COPY_CLASS(wxFFileInputStream) + wxDECLARE_NO_COPY_CLASS(wxFFileInputStream); }; class WXDLLIMPEXP_BASE wxFFileOutputStream : public wxOutputStream { public: - wxFFileOutputStream(const wxString& fileName, const wxChar *mode = _T("w+b")); + wxFFileOutputStream(const wxString& fileName, const wxString& mode = "wb"); wxFFileOutputStream(wxFFile& file); wxFFileOutputStream(FILE *file); virtual ~wxFFileOutputStream(); @@ -170,7 +196,7 @@ public: wxFileOffset GetLength() const; bool Ok() const { return IsOk(); } - virtual bool IsOk() const { return (wxStreamBase::IsOk() && m_file->IsOpened()); } + virtual bool IsOk() const; bool IsSeekable() const { return m_file->GetKind() == wxFILE_KIND_DISK; } protected: @@ -184,17 +210,43 @@ protected: wxFFile *m_file; bool m_file_destroy; - DECLARE_NO_COPY_CLASS(wxFFileOutputStream) + wxDECLARE_NO_COPY_CLASS(wxFFileOutputStream); }; class WXDLLIMPEXP_BASE wxFFileStream : public wxFFileInputStream, public wxFFileOutputStream { public: - wxFFileStream(const wxString& fileName); + wxFFileStream(const wxString& fileName, const wxString& mode = "w+b"); + + // override some virtual functions to resolve ambiguities, just as in + // wxFileStream + + virtual bool IsOk() const; + + virtual bool IsSeekable() const + { + return wxFFileInputStream::IsSeekable(); + } + + virtual wxFileOffset GetLength() const + { + return wxFFileInputStream::GetLength(); + } + +protected: + virtual wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode) + { + return wxFFileInputStream::OnSysSeek(pos, mode); + } + + virtual wxFileOffset OnSysTell() const + { + return wxFFileInputStream::OnSysTell(); + } private: - DECLARE_NO_COPY_CLASS(wxFFileStream) + wxDECLARE_NO_COPY_CLASS(wxFFileStream); }; #endif //wxUSE_FFILE