X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a737331db68b754c8bf31fa0a15f6d1f207b40bf..6319afe332dd1b386cf05902af86d3b5df6692f7:/include/wx/wfstream.h?ds=sidebyside diff --git a/include/wx/wfstream.h b/include/wx/wfstream.h index b0f4dbb02a..49fd49d00a 100644 --- a/include/wx/wfstream.h +++ b/include/wx/wfstream.h @@ -16,10 +16,19 @@ #pragma interface "wfstream.h" #endif -#include -#include -#include -#include +#include "wx/defs.h" + +#if wxUSE_STREAMS && wxUSE_FILE + +#include "wx/object.h" +#include "wx/string.h" +#include "wx/stream.h" +#include "wx/file.h" +#include "wx/ffile.h" + +// ---------------------------------------------------------------------------- +// wxFileStream using wxFile +// ---------------------------------------------------------------------------- class wxFileInputStream: public wxInputStream { public: @@ -28,8 +37,7 @@ class wxFileInputStream: public wxInputStream { wxFileInputStream(int fd); ~wxFileInputStream(); - char Peek(); - size_t StreamSize() const; + size_t GetSize() const; bool Ok() const { return m_file->IsOpened(); } @@ -57,7 +65,7 @@ class wxFileOutputStream: public wxOutputStream { // { return wxOutputStream::Write(buffer, size); } void Sync(); - size_t StreamSize() const; + size_t GetSize() const; bool Ok() const { return m_file->IsOpened(); } @@ -78,4 +86,68 @@ class wxFileStream: public wxFileInputStream, public wxFileOutputStream { wxFileStream(const wxString& fileName); }; +// ---------------------------------------------------------------------------- +// wxFFileStream using wxFFile +// ---------------------------------------------------------------------------- + +class wxFFileInputStream: public wxInputStream { + public: + wxFFileInputStream(const wxString& ifileName); + wxFFileInputStream(wxFFile& file); + wxFFileInputStream(FILE *file); + ~wxFFileInputStream(); + + size_t GetSize() const; + + bool Ok() const { return m_file->IsOpened(); } + + protected: + wxFFileInputStream(); + + size_t OnSysRead(void *buffer, size_t size); + off_t OnSysSeek(off_t pos, wxSeekMode mode); + off_t OnSysTell() const; + + protected: + wxFFile *m_file; + bool m_file_destroy; +}; + +class wxFFileOutputStream: public wxOutputStream { + public: + wxFFileOutputStream(const wxString& fileName); + wxFFileOutputStream(wxFFile& file); + wxFFileOutputStream(FILE *file); + virtual ~wxFFileOutputStream(); + + // To solve an ambiguity on GCC +// inline wxOutputStream& Write(const void *buffer, size_t size) +// { return wxOutputStream::Write(buffer, size); } + + void Sync(); + size_t GetSize() const; + + bool Ok() const { return m_file->IsOpened(); } + + protected: + wxFFileOutputStream(); + + size_t OnSysWrite(const void *buffer, size_t size); + off_t OnSysSeek(off_t pos, wxSeekMode mode); + off_t OnSysTell() const; + + protected: + wxFFile *m_file; + bool m_file_destroy; +}; + +class wxFFileStream: public wxFFileInputStream, public wxFFileOutputStream { + public: + wxFFileStream(const wxString& fileName); +}; #endif + // wxUSE_STREAMS && wxUSE_FILE + +#endif + // _WX_WXFSTREAM_H__ +