X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d775fa82354a1f8d5db87ad1d71ab00ef7d9123c..09d350c0bc105653e7cd59a8290684a3c4e70d7e:/src/common/stream.cpp?ds=sidebyside diff --git a/src/common/stream.cpp b/src/common/stream.cpp index 87748a4fe6..e797ad3f67 100644 --- a/src/common/stream.cpp +++ b/src/common/stream.cpp @@ -551,11 +551,11 @@ size_t wxStreamBuffer::Write(wxStreamBuffer *sbuf) return total; } -off_t wxStreamBuffer::Seek(off_t pos, wxSeekMode mode) +wxFileOffset wxStreamBuffer::Seek(wxFileOffset pos, wxSeekMode mode) { - off_t ret_off, diff; + wxFileOffset ret_off, diff; - off_t last_access = GetLastAccess(); + wxFileOffset last_access = GetLastAccess(); if ( !m_flushable ) { @@ -619,9 +619,9 @@ off_t wxStreamBuffer::Seek(off_t pos, wxSeekMode mode) return wxInvalidOffset; } -off_t wxStreamBuffer::Tell() const +wxFileOffset wxStreamBuffer::Tell() const { - off_t pos; + wxFileOffset pos; // ask the stream for position if we have a real one if ( m_stream ) @@ -657,16 +657,36 @@ wxStreamBase::~wxStreamBase() { } -off_t wxStreamBase::OnSysSeek(off_t WXUNUSED(seek), wxSeekMode WXUNUSED(mode)) +size_t wxStreamBase::GetSize() const +{ + wxFileOffset length = GetLength(); + return length == wxInvalidOffset ? 0 : (size_t)length; +} + +wxFileOffset wxStreamBase::OnSysSeek(wxFileOffset WXUNUSED(seek), wxSeekMode WXUNUSED(mode)) { return wxInvalidOffset; } -off_t wxStreamBase::OnSysTell() const +wxFileOffset wxStreamBase::OnSysTell() const { return wxInvalidOffset; } +#if WXWIN_COMPATIBILITY_2_2 + +wxStreamError wxStreamBase::LastError() const +{ + return m_lasterror; +} + +size_t wxStreamBase::StreamSize() const +{ + return GetSize(); +} + +#endif // WXWIN_COMPATIBILITY_2_2 + // ---------------------------------------------------------------------------- // wxInputStream // ---------------------------------------------------------------------------- @@ -853,7 +873,7 @@ wxInputStream& wxInputStream::Read(wxOutputStream& stream_out) return *this; } -off_t wxInputStream::SeekI(off_t pos, wxSeekMode mode) +wxFileOffset wxInputStream::SeekI(wxFileOffset pos, wxSeekMode mode) { // RR: This code is duplicated in wxBufferedInputStream. This is // not really a good design, but buffered stream are different @@ -887,9 +907,9 @@ off_t wxInputStream::SeekI(off_t pos, wxSeekMode mode) return OnSysSeek(pos, mode); } -off_t wxInputStream::TellI() const +wxFileOffset wxInputStream::TellI() const { - off_t pos = OnSysTell(); + wxFileOffset pos = OnSysTell(); if (pos != wxInvalidOffset) pos -= (m_wbacksize - m_wbackcur); @@ -933,12 +953,12 @@ wxOutputStream& wxOutputStream::Write(wxInputStream& stream_in) return *this; } -off_t wxOutputStream::TellO() const +wxFileOffset wxOutputStream::TellO() const { return OnSysTell(); } -off_t wxOutputStream::SeekO(off_t pos, wxSeekMode mode) +wxFileOffset wxOutputStream::SeekO(wxFileOffset pos, wxSeekMode mode) { return OnSysSeek(pos, mode); } @@ -957,7 +977,7 @@ wxCountingOutputStream::wxCountingOutputStream () m_currentPos = 0; } -size_t wxCountingOutputStream::GetSize() const +wxFileOffset wxCountingOutputStream::GetLength() const { return m_lastcount; } @@ -972,7 +992,7 @@ size_t wxCountingOutputStream::OnSysWrite(const void *WXUNUSED(buffer), return m_currentPos; } -off_t wxCountingOutputStream::OnSysSeek(off_t pos, wxSeekMode mode) +wxFileOffset wxCountingOutputStream::OnSysSeek(wxFileOffset pos, wxSeekMode mode) { switch ( mode ) { @@ -999,7 +1019,7 @@ off_t wxCountingOutputStream::OnSysSeek(off_t pos, wxSeekMode mode) return m_currentPos; } -off_t wxCountingOutputStream::OnSysTell() const +wxFileOffset wxCountingOutputStream::OnSysTell() const { return m_currentPos; } @@ -1063,7 +1083,7 @@ wxBufferedInputStream::wxBufferedInputStream(wxInputStream& s, wxBufferedInputStream::~wxBufferedInputStream() { - m_parent_i_stream->SeekI(-(off_t)m_i_streambuf->GetBytesLeft(), + m_parent_i_stream->SeekI(-(wxFileOffset)m_i_streambuf->GetBytesLeft(), wxFromCurrent); delete m_i_streambuf; @@ -1100,7 +1120,7 @@ wxInputStream& wxBufferedInputStream::Read(void *buf, size_t size) return *this; } -off_t wxBufferedInputStream::SeekI(off_t pos, wxSeekMode mode) +wxFileOffset wxBufferedInputStream::SeekI(wxFileOffset pos, wxSeekMode mode) { // RR: Look at wxInputStream for comments. @@ -1120,9 +1140,9 @@ off_t wxBufferedInputStream::SeekI(off_t pos, wxSeekMode mode) return m_i_streambuf->Seek(pos, mode); } -off_t wxBufferedInputStream::TellI() const +wxFileOffset wxBufferedInputStream::TellI() const { - off_t pos = m_i_streambuf->Tell(); + wxFileOffset pos = m_i_streambuf->Tell(); if (pos != wxInvalidOffset) pos -= (m_wbacksize - m_wbackcur); @@ -1135,12 +1155,12 @@ size_t wxBufferedInputStream::OnSysRead(void *buffer, size_t bufsize) return m_parent_i_stream->Read(buffer, bufsize).LastRead(); } -off_t wxBufferedInputStream::OnSysSeek(off_t seek, wxSeekMode mode) +wxFileOffset wxBufferedInputStream::OnSysSeek(wxFileOffset seek, wxSeekMode mode) { return m_parent_i_stream->SeekI(seek, mode); } -off_t wxBufferedInputStream::OnSysTell() const +wxFileOffset wxBufferedInputStream::OnSysTell() const { return m_parent_i_stream->TellI(); } @@ -1179,6 +1199,13 @@ wxBufferedOutputStream::~wxBufferedOutputStream() delete m_o_streambuf; } +bool wxBufferedOutputStream::Close() +{ + Sync(); + return IsOk(); +} + + wxOutputStream& wxBufferedOutputStream::Write(const void *buffer, size_t size) { m_lastcount = 0; @@ -1186,13 +1213,13 @@ wxOutputStream& wxBufferedOutputStream::Write(const void *buffer, size_t size) return *this; } -off_t wxBufferedOutputStream::SeekO(off_t pos, wxSeekMode mode) +wxFileOffset wxBufferedOutputStream::SeekO(wxFileOffset pos, wxSeekMode mode) { Sync(); return m_o_streambuf->Seek(pos, mode); } -off_t wxBufferedOutputStream::TellO() const +wxFileOffset wxBufferedOutputStream::TellO() const { return m_o_streambuf->Tell(); } @@ -1208,19 +1235,19 @@ size_t wxBufferedOutputStream::OnSysWrite(const void *buffer, size_t bufsize) return m_parent_o_stream->Write(buffer, bufsize).LastWrite(); } -off_t wxBufferedOutputStream::OnSysSeek(off_t seek, wxSeekMode mode) +wxFileOffset wxBufferedOutputStream::OnSysSeek(wxFileOffset seek, wxSeekMode mode) { return m_parent_o_stream->SeekO(seek, mode); } -off_t wxBufferedOutputStream::OnSysTell() const +wxFileOffset wxBufferedOutputStream::OnSysTell() const { return m_parent_o_stream->TellO(); } -size_t wxBufferedOutputStream::GetSize() const +wxFileOffset wxBufferedOutputStream::GetLength() const { - return m_parent_o_stream->GetSize() + m_o_streambuf->GetIntPosition(); + return m_parent_o_stream->GetLength() + m_o_streambuf->GetIntPosition(); } void wxBufferedOutputStream::SetOutputStreamBuffer(wxStreamBuffer *buffer)