#include "wx/wxprec.h"
#ifdef __BORLANDC__
-#pragma hdrstop
+ #pragma hdrstop
#endif
#if wxUSE_SOCKETS
-#include "wx/app.h"
+#include "wx/socket.h"
+
+#ifndef WX_PRECOMP
+ #include "wx/object.h"
+ #include "wx/string.h"
+ #include "wx/intl.h"
+ #include "wx/log.h"
+ #include "wx/event.h"
+ #include "wx/app.h"
+ #include "wx/utils.h"
+ #include "wx/timer.h"
+ #include "wx/module.h"
+#endif
+
#include "wx/apptrait.h"
-#include "wx/object.h"
-#include "wx/string.h"
-#include "wx/timer.h"
-#include "wx/utils.h"
-#include "wx/module.h"
-#include "wx/log.h"
-#include "wx/intl.h"
-#include "wx/event.h"
#include "wx/sckaddr.h"
-#include "wx/socket.h"
#include "wx/datetime.h"
// DLL options compatibility check:
// Return now in one of the following cases:
// - the socket is invalid,
- // - we got all the data,
- // - we got *some* data and we are not using wxSOCKET_WAITALL.
+ // - we got all the data
if ( !m_socket ||
- !nbytes ||
- ((total != 0) && !(m_flags & wxSOCKET_WAITALL)) )
+ !nbytes )
return total;
// Possible combinations (they are checked in this order)
else
timeout = m_timeout * 1000;
- bool has_event_loop = wxTheApp ? (wxTheApp->GetTraits() ? true : false) : false;
+ bool has_event_loop = wxTheApp->GetTraits() ? (wxTheApp->GetTraits()->GetSocketGUIFunctionsTable() ? true : false) : false;
// Wait in an active polling loop.
//
bool done = false;
bool valid_result = false;
- if (!has_event_loop)
+ if (!has_event_loop)
{
// This is used to avoid a busy loop on wxBase - having a select
// timeout of 50 ms per iteration should be enough.
done = true;
else
{
- if (has_event_loop)
+ if (has_event_loop)
{
PROCESS_EVENTS();
}
- else
+ else
{
// If there's less than 50 ms left, just call select with that timeout.
if (time_left < 50)
int optlen)
{
wxASSERT_MSG( m_socket, _T("Socket not initialised") );
-
+
if (m_socket->SetSockOpt(level, optname, optval, optlen)
!= GSOCK_NOERROR)
{
wxUint32 nBytes )
{
wxASSERT_MSG( m_socket, _T("Socket not initialised") );
-
+
m_socket->SetPeer(addr.GetAddress());
Write(buf, nBytes);
return (*this);