X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/32fc4afbb253f55d4b35b7ee7a2ca9a7eea49fd9..d0fff5cb110810d3bee6fa255292f161f7752911:/include/wx/fstream.h diff --git a/include/wx/fstream.h b/include/wx/fstream.h index d41b9bc735..eab87dab21 100644 --- a/include/wx/fstream.h +++ b/include/wx/fstream.h @@ -8,61 +8,58 @@ // Copyright: (c) Guilhem Lavaux // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef __WXFSTREAM_H__ -#define __WXFSTREAM_H__ +#ifndef _WX_WXFSTREAM_H__ +#define _WX_WXFSTREAM_H__ -#include #include #include #include +#include -class wxFileStreamBase: public wxStream { - DECLARE_CLASS(wxFileStreamBase) +class wxFileInputStream: public wxInputStream, virtual public wxFile { public: - wxFileStreamBase(const wxString& fileName, int iolimit); - virtual ~wxFileStreamBase(); + wxFileInputStream(const wxString& fileName); + virtual ~wxFileInputStream(); - wxInputStream& Read(void *buffer, size_t size); - size_t SeekI(int pos, wxWhenceType whence = wxBeginPosition); - size_t TellI() const; + virtual char Peek(); - bool Eof() const { return m_eof; } - size_t LastRead() const { return m_lastread; } + virtual bool Eof() const { return wxFile::Eof(); } - wxOutputStream& Write(const void *buffer, size_t size); - size_t SeekO(int pos, wxWhenceType whence = wxBeginPosition); - size_t TellO() const; - - bool Bad() const { return m_bad; } - size_t LastWrite() const { return m_lastwrite; } - - void Sync(); + bool Ok() const { return wxFile::IsOpened(); } protected: - size_t m_lastread, m_lastwrite; - bool m_eof, m_bad; - FILE *m_file; -}; + wxFileInputStream() {} -class wxFileInputStream: public wxFileStreamBase { - DECLARE_CLASS(wxFileInputStream) - public: - wxFileInputStream(const wxString& fileName) : wxFileStreamBase(fileName, 1) {} - virtual ~wxFileInputStream() {} + size_t DoRead(void *buffer, size_t size); + off_t DoSeekInput(off_t pos, wxSeekMode mode); + off_t DoTellInput() const; }; -class wxFileOutputStream: public wxFileStreamBase { - DECLARE_CLASS(wxFileOutputStream) +class wxFileOutputStream: public wxOutputStream, virtual public wxFile { public: - wxFileOutputStream(const wxString& fileName) : wxFileStreamBase(fileName, 2) {} - virtual ~wxFileOutputStream() {} + wxFileOutputStream(const wxString& fileName); + virtual ~wxFileOutputStream(); + + // To solve an ambiguity on GCC + inline wxOutputStream& Write(const void *buffer, size_t size) + { return wxOutputStream::Write(buffer, size); } + + void Sync(); + + bool Ok() const { return wxFile::IsOpened(); } + + protected: + wxFileOutputStream() {} + + size_t DoWrite(const void *buffer, size_t size); + off_t DoSeekOutput(off_t pos, wxSeekMode mode); + off_t DoTellOutput() const; }; -class wxFileStream: public wxFileStreamBase { - DECLARE_CLASS(wxFileStream) +class wxFileStream: public wxFileInputStream, public wxFileOutputStream { public: - wxFileStream(const wxString& fileName) : wxFileStreamBase(fileName, 0) {} - virtual ~wxFileStream() {} + wxFileStream(const wxString& fileName); + virtual ~wxFileStream(); }; #endif