X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/79c3e0e1aeebb64da2ac893e6ed7b27edca01a64..1b826605f5ab0bb680925f5e24a57b068ce2bdc5:/include/wx/fstream.h?ds=sidebyside diff --git a/include/wx/fstream.h b/include/wx/fstream.h index 384a614bc4..2c1f320f85 100644 --- a/include/wx/fstream.h +++ b/include/wx/fstream.h @@ -8,68 +8,81 @@ // Copyright: (c) Guilhem Lavaux // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef __WXFSTREAM_H__ -#define __WXFSTREAM_H__ + +#ifndef _WX_WXFSTREAM_H__ +#define _WX_WXFSTREAM_H__ + +#ifdef __GNUG__ +#pragma interface "fstream.h" +#endif #include #include #include #include -class wxFileInputStream: virtual public wxFile, public wxInputStream { - DECLARE_CLASS(wxFileInputStream) +// Disable warnings such as +// 'wxFileStream' : inherits 'wxFileInputStream::Peek' via dominance + +#ifdef _MSC_VER +#pragma warning(disable:4250) +#endif + +class wxFileStreamBase { +protected: + wxFile *m_file; + bool m_file_destroy; +}; + +class wxFileInputStream: public virtual wxInputStream, + public virtual wxFileStreamBase { public: wxFileInputStream(const wxString& fileName); virtual ~wxFileInputStream(); - wxInputStream& Read(void *buffer, size_t size); - off_t SeekI(off_t pos, wxSeekMode mode = wxFromStart); - off_t TellI() const; - - bool Eof() const { return m_eof; } - size_t LastRead() const { return m_lastread; } + virtual char Peek(); - bool Ok() const { return wxFile::IsOpened(); } + bool Ok() const { return m_file->IsOpened(); } protected: - wxFileInputStream() {} + wxFileInputStream(); - protected: - bool m_eof; - bool m_ok_i; - size_t m_lastread; + size_t DoRead(void *buffer, size_t size); + off_t DoSeekInput(off_t pos, wxSeekMode mode); + off_t DoTellInput() const; }; -class wxFileOutputStream: virtual wxFile, public wxOutputStream { - DECLARE_CLASS(wxFileOutputStream) +class wxFileOutputStream: public virtual wxOutputStream, + public virtual wxFileStreamBase { public: wxFileOutputStream(const wxString& fileName); virtual ~wxFileOutputStream(); - wxOutputStream& Write(const void *buffer, size_t size); - off_t SeekO(off_t pos, wxSeekMode mode = wxFromStart); - off_t TellO() const; - - bool Bad() const { return m_bad; } - size_t LastWrite() const { return m_lastwrite; } + // To solve an ambiguity on GCC + inline wxOutputStream& Write(const void *buffer, size_t size) + { return wxOutputStream::Write(buffer, size); } void Sync(); - bool IsOpened() const { return wxFile::IsOpened(); } + bool Ok() const { return m_file->IsOpened(); } protected: - wxFileOutputStream() {} + wxFileOutputStream(); - protected: - bool m_bad; - size_t m_lastwrite; + size_t DoWrite(const void *buffer, size_t size); + off_t DoSeekOutput(off_t pos, wxSeekMode mode); + off_t DoTellOutput() const; }; -class wxFileStream: public wxFileInputStream, public wxFileOutputStream { - DECLARE_CLASS(wxFileStream) +class wxFileStream: public wxStream, + public wxFileInputStream, public wxFileOutputStream { public: wxFileStream(const wxString& fileName); virtual ~wxFileStream(); }; +#ifdef _MSC_VER +#pragma warning(default:4250) +#endif + #endif