X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/764471557e06c8816b8cc8eb9924a1e3c78509d8..d8090b5e2c5d980b243674c7d99b4b4200af39d4:/src/common/mstream.cpp?ds=sidebyside diff --git a/src/common/mstream.cpp b/src/common/mstream.cpp index b9fef96e8c..5ecc10f704 100644 --- a/src/common/mstream.cpp +++ b/src/common/mstream.cpp @@ -42,6 +42,8 @@ // wxMemoryInputStream // ---------------------------------------------------------------------------- +IMPLEMENT_ABSTRACT_CLASS(wxMemoryInputStream, wxInputStream) + wxMemoryInputStream::wxMemoryInputStream(const void *data, size_t len) { m_i_streambuf = new wxStreamBuffer(wxStreamBuffer::read); @@ -63,7 +65,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 +89,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 +99,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 +153,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 +194,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();