X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fae05df5a988883e9c6683ccded766dfb7b84b1b..678d9f2a42faa84cf934bbb75a5b4414a094012e:/src/common/mstream.cpp diff --git a/src/common/mstream.cpp b/src/common/mstream.cpp index 6519a8bc3a..4555d35062 100644 --- a/src/common/mstream.cpp +++ b/src/common/mstream.cpp @@ -33,24 +33,37 @@ wxMemoryInputStream::wxMemoryInputStream(const char *data, size_t len) : wxInputStream() { -/* + m_i_streambuf = new wxStreamBuffer(wxStreamBuffer::read); m_i_streambuf->SetBufferIO((char*) data, (char*) (data+len)); m_i_streambuf->SetIntPosition(0); // seek to start pos m_i_streambuf->Fixed(TRUE); -*/ + m_length = len; } wxMemoryInputStream::~wxMemoryInputStream() { + delete m_i_streambuf; } char wxMemoryInputStream::Peek() { -/* return m_i_streambuf->GetBufferStart()[m_i_streambuf->GetIntPosition()]; -*/ - return 0; +} + +size_t wxMemoryInputStream::OnSysRead(void *buffer, size_t nbytes) +{ + return m_i_streambuf->Read(buffer, nbytes); +} + +off_t wxMemoryInputStream::OnSysSeek(off_t pos, wxSeekMode mode) +{ + return m_i_streambuf->Seek(pos, mode); +} + +off_t wxMemoryInputStream::OnSysTell() const +{ + return m_i_streambuf->Tell(); } // ---------------------------------------------------------------------------- @@ -60,15 +73,31 @@ char wxMemoryInputStream::Peek() wxMemoryOutputStream::wxMemoryOutputStream(char *data, size_t len) : wxOutputStream() { -/* + m_o_streambuf = new wxStreamBuffer(wxStreamBuffer::write); if (data) m_o_streambuf->SetBufferIO(data, data+len); m_o_streambuf->Fixed(TRUE); -*/ } wxMemoryOutputStream::~wxMemoryOutputStream() { + delete m_o_streambuf; } +size_t wxMemoryOutputStream::OnSysWrite(const void *buffer, size_t nbytes) +{ + return m_o_streambuf->Write(buffer, nbytes); +} + +off_t wxMemoryOutputStream::OnSysSeek(off_t pos, wxSeekMode mode) +{ + return m_o_streambuf->Seek(pos, mode); +} + +off_t wxMemoryOutputStream::OnSysTell() const +{ + return m_o_streambuf->Tell(); +} + + #endif