Add wxTempFileOutputStream

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32796 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Michael Wetherell
2005-03-13 16:20:51 +00:00
parent 5a053c22d8
commit e126517457
16 changed files with 372 additions and 66 deletions

View File

@@ -164,6 +164,13 @@ public:
// is the file opened?
bool IsOpened() const { return m_file.IsOpened(); }
// get current file length
wxFileOffset Length() const { return m_file.Length(); }
// move ptr ofs bytes related to start/current offset/end of file
wxFileOffset Seek(wxFileOffset ofs, wxSeekMode mode = wxFromStart)
{ return m_file.Seek(ofs, mode); }
// get current offset
wxFileOffset Tell() const { return m_file.Tell(); }
// I/O (both functions return true on success, false on failure)
bool Write(const void *p, size_t n) { return m_file.Write(p, n) == n; }

View File

@@ -88,6 +88,31 @@ protected:
DECLARE_NO_COPY_CLASS(wxFileOutputStream)
};
class WXDLLIMPEXP_BASE wxTempFileOutputStream : public wxOutputStream
{
public:
wxTempFileOutputStream(const wxString& fileName);
virtual ~wxTempFileOutputStream();
bool Close() { return Commit(); }
virtual bool Commit() { return m_file->Commit(); }
virtual void Discard() { m_file->Discard(); }
wxFileOffset GetLength() const { return m_file->Length(); }
bool IsSeekable() const { return true; }
protected:
size_t OnSysWrite(const void *buffer, size_t size);
wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode)
{ return m_file->Seek(pos, mode); }
wxFileOffset OnSysTell() const { return m_file->Tell(); }
private:
wxTempFile *m_file;
DECLARE_NO_COPY_CLASS(wxTempFileOutputStream)
};
class WXDLLIMPEXP_BASE wxFileStream : public wxFileInputStream,
public wxFileOutputStream
{