X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2f0add5ae0f51eaac054102121ff289e0f2580bd..bf2c43c76e2819be443ab1d830ab68d9569d66b1:/src/common/sckstrm.cpp?ds=sidebyside diff --git a/src/common/sckstrm.cpp b/src/common/sckstrm.cpp index 8b16fcca90..8f64727d78 100644 --- a/src/common/sckstrm.cpp +++ b/src/common/sckstrm.cpp @@ -4,7 +4,6 @@ // Author: Guilhem Lavaux // Modified by: // Created: 17/07/97 -// RCS-ID: $Id$ // Copyright: (c) // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -41,28 +40,12 @@ wxSocketOutputStream::~wxSocketOutputStream() size_t wxSocketOutputStream::OnSysWrite(const void *buffer, size_t size) { - const char *buf = (const char *)buffer; - size_t count = 0; - - while ( count < size && m_o_socket->WaitForWrite() ) - { - const size_t ret = m_o_socket->Write(buf, size - count).LastCount(); - - buf += ret; - count += ret; - - if ( m_o_socket->Error() ) - { - if (m_o_socket->LastError() != wxSOCKET_WOULDBLOCK) - { - m_lasterror = wxSTREAM_WRITE_ERROR; - return count; - } - } - } - - m_lasterror = wxSTREAM_NO_ERROR; - return count; + const size_t ret = m_o_socket->Write(buffer, size).LastCount(); + m_lasterror = m_o_socket->Error() + ? m_o_socket->IsClosed() ? wxSTREAM_EOF + : wxSTREAM_WRITE_ERROR + : wxSTREAM_NO_ERROR; + return ret; } // --------------------------------------------------------------------------- @@ -80,28 +63,12 @@ wxSocketInputStream::~wxSocketInputStream() size_t wxSocketInputStream::OnSysRead(void *buffer, size_t size) { - char *buf = (char *)buffer; - size_t count = 0; - - while ( count < size && m_i_socket->WaitForRead() ) - { - const size_t ret = m_i_socket->Read(buf, size - count).LastCount(); - - buf += ret; - count += ret; - - if ( m_i_socket->Error() ) - { - if (m_i_socket->LastError() != wxSOCKET_WOULDBLOCK) - { - m_lasterror = wxSTREAM_READ_ERROR; - return count; - } - } - } - - m_lasterror = wxSTREAM_NO_ERROR; - return count; + const size_t ret = m_i_socket->Read(buffer, size).LastCount(); + m_lasterror = m_i_socket->Error() + ? m_i_socket->IsClosed() ? wxSTREAM_EOF + : wxSTREAM_READ_ERROR + : wxSTREAM_NO_ERROR; + return ret; } // --------------------------------------------------------------------------- @@ -117,5 +84,4 @@ wxSocketStream::~wxSocketStream() { } -#endif - // wxUSE_STREAMS && wxUSE_SOCKETS +#endif // wxUSE_STREAMS && wxUSE_SOCKETS