X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/764471557e06c8816b8cc8eb9924a1e3c78509d8..11a23db53128bf244a089123b7fd27deb577a889:/src/common/mstream.cpp diff --git a/src/common/mstream.cpp b/src/common/mstream.cpp index b9fef96e8c..5e5c6495ce 100644 --- a/src/common/mstream.cpp +++ b/src/common/mstream.cpp @@ -4,7 +4,6 @@ // Author: Guilhem Lavaux // Modified by: VZ (23.11.00): general code review // Created: 04/01/98 -// RCS-ID: $Id$ // Copyright: (c) Guilhem Lavaux // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -42,10 +41,12 @@ // wxMemoryInputStream // ---------------------------------------------------------------------------- +IMPLEMENT_ABSTRACT_CLASS(wxMemoryInputStream, wxInputStream) + wxMemoryInputStream::wxMemoryInputStream(const void *data, size_t len) { m_i_streambuf = new wxStreamBuffer(wxStreamBuffer::read); - m_i_streambuf->SetBufferIO((void *)data, len); // const_cast + m_i_streambuf->SetBufferIO(const_cast(data), len); m_i_streambuf->SetIntPosition(0); // seek to start pos m_i_streambuf->Fixed(true); @@ -63,7 +64,7 @@ wxMemoryInputStream::wxMemoryInputStream(const wxMemoryOutputStream& stream) } const size_t len = wx_truncate_cast(size_t, lenFile); - wxASSERT_MSG( len == lenFile + size_t(0), _T("huge files not supported") ); + wxASSERT_MSG( len == lenFile + size_t(0), wxT("huge files not supported") ); m_i_streambuf = new wxStreamBuffer(wxStreamBuffer::read); m_i_streambuf->SetBufferIO(len); // create buffer @@ -87,7 +88,7 @@ wxMemoryInputStream::InitFromStream(wxInputStream& stream, wxFileOffset lenFile) } const size_t len = wx_truncate_cast(size_t, lenFile); - wxASSERT_MSG( (wxFileOffset)len == lenFile, _T("huge files not supported") ); + wxASSERT_MSG( (wxFileOffset)len == lenFile, wxT("huge files not supported") ); m_i_streambuf = new wxStreamBuffer(wxStreamBuffer::read); m_i_streambuf->SetBufferIO(len); // create buffer @@ -97,6 +98,11 @@ wxMemoryInputStream::InitFromStream(wxInputStream& stream, wxFileOffset lenFile) m_length = stream.LastRead(); } +bool wxMemoryInputStream::CanRead() const +{ + return m_i_streambuf->GetIntPosition() != m_length; +} + wxMemoryInputStream::~wxMemoryInputStream() { delete m_i_streambuf; @@ -146,6 +152,8 @@ wxFileOffset wxMemoryInputStream::OnSysTell() const // wxMemoryOutputStream // ---------------------------------------------------------------------------- +IMPLEMENT_DYNAMIC_CLASS(wxMemoryOutputStream, wxOutputStream) + wxMemoryOutputStream::wxMemoryOutputStream(void *data, size_t len) { m_o_streambuf = new wxStreamBuffer(wxStreamBuffer::write); @@ -185,7 +193,7 @@ wxFileOffset wxMemoryOutputStream::OnSysTell() const size_t wxMemoryOutputStream::CopyTo(void *buffer, size_t len) const { - wxCHECK_MSG( buffer, 0, _T("must have buffer to CopyTo") ); + wxCHECK_MSG( buffer, 0, wxT("must have buffer to CopyTo") ); if ( len > GetSize() ) len = GetSize();