X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e2478fde622a16d25c66690af353dfdc37e7b582..e0c5c96f67eaf13ccbd378616bdf98c8dba01e78:/src/common/socket.cpp diff --git a/src/common/socket.cpp b/src/common/socket.cpp index b25ca3fd31..6e40e90f91 100644 --- a/src/common/socket.cpp +++ b/src/common/socket.cpp @@ -13,7 +13,7 @@ // Declarations // ========================================================================== -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "socket.h" #endif @@ -41,6 +41,10 @@ #include "wx/sckaddr.h" #include "wx/socket.h" +// DLL options compatibility check: +#include "wx/build.h" +WX_CHECK_BUILD_OPTIONS("wxNet") + // -------------------------------------------------------------------------- // macros and constants // -------------------------------------------------------------------------- @@ -90,10 +94,6 @@ public: wxSocketEventFlags m_eventmask; bool m_notify; void *m_clientData; -#if WXWIN_COMPATIBILITY - wxSocketBase::wxSockCbk m_cbk; - char *m_cdata; -#endif // WXWIN_COMPATIBILITY public: wxSocketState() : wxObject() {} @@ -122,6 +122,12 @@ bool wxSocketBase::Initialize() { if ( !m_countInit++ ) { + wxAppTraits *traits = wxAppConsole::GetInstance() ? + wxAppConsole::GetInstance()->GetTraits() : NULL; + GSocketGUIFunctionsTable *functions = + traits ? traits->GetSocketGUIFunctionsTable() : NULL; + GSocket_SetGUIFunctions(functions); + if ( !GSocket_Init() ) { m_countInit--; @@ -174,10 +180,6 @@ void wxSocketBase::Init() m_clientData = NULL; m_notify = FALSE; m_eventmask = 0; -#if WXWIN_COMPATIBILITY - m_cbk = NULL; - m_cdata = NULL; -#endif // WXWIN_COMPATIBILITY if ( !IsInitialized() ) { @@ -301,7 +303,6 @@ wxSocketBase& wxSocketBase::Read(void* buffer, wxUint32 nbytes) wxUint32 wxSocketBase::_Read(void* buffer, wxUint32 nbytes) { int total; - int ret = 1; // Try the pushback buffer first total = GetPushback(buffer, nbytes, FALSE); @@ -323,6 +324,7 @@ wxUint32 wxSocketBase::_Read(void* buffer, wxUint32 nbytes) // wxSOCKET_BLOCK // wxSOCKET_NONE // + int ret; if (m_flags & wxSOCKET_NOWAIT) { GSocket_SetNonBlocking(m_socket, 1); @@ -502,7 +504,6 @@ wxSocketBase& wxSocketBase::Write(const void *buffer, wxUint32 nbytes) wxUint32 wxSocketBase::_Write(const void *buffer, wxUint32 nbytes) { wxUint32 total = 0; - int ret = 1; // If the socket is invalid or parameters are ill, return immediately if (!m_socket || !buffer || !nbytes) @@ -514,6 +515,7 @@ wxUint32 wxSocketBase::_Write(const void *buffer, wxUint32 nbytes) // wxSOCKET_BLOCK // wxSOCKET_NONE // + int ret; if (m_flags & wxSOCKET_NOWAIT) { GSocket_SetNonBlocking(m_socket, 1); @@ -556,7 +558,6 @@ wxSocketBase& wxSocketBase::WriteMsg(const void *buffer, wxUint32 nbytes) { wxUint32 total; bool error; - int old_flags; struct { unsigned char sig[4]; @@ -568,7 +569,6 @@ wxSocketBase& wxSocketBase::WriteMsg(const void *buffer, wxUint32 nbytes) error = TRUE; total = 0; - old_flags = m_flags; SetFlags((m_flags & wxSOCKET_BLOCK) | wxSOCKET_WAITALL); msg.sig[0] = (unsigned char) 0xad; @@ -622,7 +622,6 @@ wxSocketBase& wxSocketBase::Unread(const void *buffer, wxUint32 nbytes) wxSocketBase& wxSocketBase::Discard() { - int old_flags; char *buffer = new char[MAX_DISCARD_SIZE]; wxUint32 ret; wxUint32 total = 0; @@ -630,7 +629,6 @@ wxSocketBase& wxSocketBase::Discard() // Mask read events m_reading = TRUE; - old_flags = m_flags; SetFlags(wxSOCKET_NOWAIT); do @@ -680,6 +678,10 @@ bool wxSocketBase::_Wait(long seconds, else timeout = m_timeout * 1000; +#if !defined(wxUSE_GUI) || !wxUSE_GUI + GSocket_SetTimeout(m_socket, timeout); +#endif + // Wait in an active polling loop. // // NOTE: We duplicate some of the code in OnRequest, but this doesn't @@ -818,17 +820,13 @@ void wxSocketBase::SaveState() state->m_notify = m_notify; state->m_eventmask = m_eventmask; state->m_clientData = m_clientData; -#if WXWIN_COMPATIBILITY - state->m_cbk = m_cbk; - state->m_cdata = m_cdata; -#endif // WXWIN_COMPATIBILITY m_states.Append(state); } void wxSocketBase::RestoreState() { - wxNode *node; + wxList::compatibility_iterator node; wxSocketState *state; node = m_states.GetLast(); @@ -841,12 +839,8 @@ void wxSocketBase::RestoreState() m_notify = state->m_notify; m_eventmask = state->m_eventmask; m_clientData = state->m_clientData; -#if WXWIN_COMPATIBILITY - m_cbk = state->m_cbk; - m_cdata = state->m_cdata; -#endif // WXWIN_COMPATIBILITY - - delete node; + + m_states.Erase(node); delete state; } @@ -868,30 +862,6 @@ void wxSocketBase::SetFlags(wxSocketFlags flags) } -// -------------------------------------------------------------------------- -// Callbacks (now obsolete - use events instead) -// -------------------------------------------------------------------------- - -#if WXWIN_COMPATIBILITY - -wxSocketBase::wxSockCbk wxSocketBase::Callback(wxSockCbk cbk_) -{ - wxSockCbk old_cbk = cbk_; - - m_cbk = cbk_; - return old_cbk; -} - -char *wxSocketBase::CallbackData(char *data) -{ - char *old_data = m_cdata; - - m_cdata = data; - return old_data; -} - -#endif // WXWIN_COMPATIBILITY - // -------------------------------------------------------------------------- // Event handling // -------------------------------------------------------------------------- @@ -964,6 +934,7 @@ void wxSocketBase::OnRequest(wxSocketNotify notification) // Schedule the event wxSocketEventFlags flag = 0; + wxUnusedVar(flag); switch (notification) { case GSOCK_INPUT: flag = GSOCK_INPUT_FLAG; break; @@ -986,11 +957,6 @@ void wxSocketBase::OnRequest(wxSocketNotify notification) m_handler->AddPendingEvent(event); } - -#if WXWIN_COMPATIBILITY - if (m_cbk) - m_cbk(*this, notification, m_cdata); -#endif // WXWIN_COMPATIBILITY } } @@ -1298,7 +1264,7 @@ wxDatagramSocket& wxDatagramSocket::SendTo( wxSockAddress& addr, // wxSocketModule // ========================================================================== -class WXDLLEXPORT wxSocketModule : public wxModule +class wxSocketModule : public wxModule { public: virtual bool OnInit()