* wxSocket fixes

* wxStream: - new inheritance, new stream buffer, nearly the same API for the
              end user
            - updated other streams consequently
* wxGTK: some change to make it compile on GTK 1.0 and GTK 1.1
* small changes on wxThread to prepare a more reentrant lib
* wxVariant works with wxStream too now


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@829 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Guilhem Lavaux
1998-10-14 17:36:50 +00:00
parent 1b19f0560f
commit 75ed1d15d0
30 changed files with 706 additions and 731 deletions

View File

@@ -36,7 +36,7 @@ wxZlibInputStream::wxZlibInputStream(wxInputStream& stream)
int err;
// I need a private stream buffer.
m_i_streambuf = new wxStreamBuffer(*this);
m_i_streambuf = new wxStreamBuffer(*this, wxStreamBuffer::read);
m_i_destroybuf = TRUE;
m_inflate = new z_stream_s;
@@ -64,7 +64,7 @@ wxZlibInputStream::~wxZlibInputStream()
delete m_inflate;
}
size_t wxZlibInputStream::DoRead(void *buffer, size_t size)
size_t wxZlibInputStream::OnSysRead(void *buffer, size_t size)
{
int err;
@@ -78,7 +78,7 @@ size_t wxZlibInputStream::DoRead(void *buffer, size_t size)
m_inflate->next_in = m_z_buffer;
m_inflate->avail_in = m_parent_i_stream->LastRead();
if (m_parent_i_stream->Eof())
if (m_parent_i_stream->LastError() != wxStream_NOERROR)
return (size - m_inflate->avail_in);
}
err = inflate(m_inflate, Z_FINISH);
@@ -89,13 +89,6 @@ size_t wxZlibInputStream::DoRead(void *buffer, size_t size)
return size-m_inflate->avail_in;
}
bool wxZlibInputStream::Eof() const
{
if (!m_eof)
return m_parent_i_stream->Eof();
return m_eof;
}
//////////////////////
// wxZlibOutputStream
//////////////////////
@@ -105,7 +98,7 @@ wxZlibOutputStream::wxZlibOutputStream(wxOutputStream& stream)
{
int err;
m_o_streambuf = new wxStreamBuffer(*this);
m_o_streambuf = new wxStreamBuffer(*this, wxStreamBuffer::write);
m_o_destroybuf = TRUE;
m_deflate = new z_stream_s;
@@ -155,7 +148,6 @@ void wxZlibOutputStream::Sync()
err = deflate(m_deflate, Z_FULL_FLUSH);
if (err != Z_OK) {
m_bad = TRUE;
return;
}
@@ -164,7 +156,7 @@ void wxZlibOutputStream::Sync()
m_deflate->avail_out = m_z_size;
}
size_t wxZlibOutputStream::DoWrite(const void *buffer, size_t size)
size_t wxZlibOutputStream::OnSysWrite(const void *buffer, size_t size)
{
int err;
@@ -175,7 +167,7 @@ size_t wxZlibOutputStream::DoWrite(const void *buffer, size_t size)
if (m_deflate->avail_out == 0) {
m_parent_o_stream->Write(m_z_buffer, m_z_size);
if (m_parent_o_stream->Bad())
if (m_parent_o_stream->LastError() != wxStream_NOERROR)
return (size - m_deflate->avail_in);
m_deflate->next_out = m_z_buffer;
@@ -188,10 +180,3 @@ size_t wxZlibOutputStream::DoWrite(const void *buffer, size_t size)
}
return size;
}
bool wxZlibOutputStream::Bad() const
{
if (!m_bad)
return m_parent_o_stream->Bad();
return m_bad;
}