Vadim Zeitlin
251e98cb73
Added wxFDIOHandler::IsOk() and use it with wxSocketImplUnix.
...
This will allow to use the base wxFDIOHandler class only in GUI-specific
network code and this remove its dependency on wxSocketImplUnix. IOW it paves
the way for a proper solution of the problem fixed by r61336 without the hack
of r61335 which results in linking problems (which went undiscovered until now
but were, in fact, always present, i.e. r61335 couldn't work).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61685 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-17 23:02:18 +00:00
Vadim Zeitlin
4f260c9c68
Virtualize wxSocketImpl creation by routing it via wxSocketManager.
...
This is necessary to create different kinds of sockets for the console and GUI
applications under OS X: unlike Unix which use different socket managers for
the console and GUI programs but still use the same data structures in both
cases as X11 and derived toolkits APIs are very similar, Core Foundation
sockets don't have anything in common with their console counterparts and so
we need to use different wxSocketImpl versions too.
A side effect of this commit is that now we need to force linking of
src/msw/sockmsw.cpp when using sockets: this wasn't necessary before because
it contained wxSocketImpl method definition but now that there are no more
direct dependencies on it, MSVC linker simply discards the object file unless
we force it to link with it.
Notice that this commit doesn't change anything yet, it simply refactors the
code to use wxSocketManager::CreateSocket() instead of wxSocketImpl::Create()
in preparation for the next change.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61675 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-16 23:13:45 +00:00
Vadim Zeitlin
ee0995b09b
don't call OnWriteWaiting() if we lost connection in OnReadWaiting() called just before it ( closes #10963 )
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61336 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-05 21:42:56 +00:00
Vadim Zeitlin
37465b7281
change wxSocketInputBasedManager::AddInput() to take a pointer to wxSocketImpl, not base class wxFDIOHandler
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61335 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-05 21:36:24 +00:00
Vadim Zeitlin
df21920b80
disable the events when we get a notification about socket being ready for IO and reenable them later after performing the IO in the Unix version to avoid continuous flood of ready notifications
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57796 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-02 21:53:30 +00:00
Vadim Zeitlin
39b61b0581
rename wxSocketSelectManager to wxSocketFDIOManager, the old name was confusing as it could be either select()- or epoll()-based
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57776 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-02 16:59:23 +00:00
Vadim Zeitlin
c363ead1e2
remove wxSOCKET_MAX_EVENT, it is not really necessary and results in gcc warnings about unhandled enum value in switch in existing code (including our own sample)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57653 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-30 00:11:04 +00:00
Vadim Zeitlin
14372de82e
move Read/Write() to common code, there was almost nothing platform-specific in it
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57613 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-27 22:49:46 +00:00
Vadim Zeitlin
62088a3c3b
wxSocketImpl::Shutdown() doesn't need to be virtual, its implementation can the same in Unix and Win32 versions (events are already disabled by Close() so there is no need to do it again explicitly under Unix)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57611 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-27 22:03:34 +00:00
Vadim Zeitlin
7d66cdccd0
don't remove/add back the socket to the list of inputs monitored by the event loop all the time but just leave it there until the socket is destroyed; this should be beneficial from performance point of view (although hard to measure) and also makes the code simpler
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57610 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-27 21:56:05 +00:00
Vadim Zeitlin
5e9238f9c6
remove the badle defined and apparently unnecessary wxSocketImpl::m_detected field
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57608 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-27 21:48:42 +00:00
Vadim Zeitlin
2b036c4b23
our sockets are always non-blocking anyhow so throw away all the code dealing with checking if they're blocking; also merge Unix/Win32 versions of connect() and accept() handling as they were almost identical except for the different checking of the return value which was factored out into a platform-specific GetLastError() function
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57600 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-27 17:15:22 +00:00
Vadim Zeitlin
22185a1f15
remove m_use_events from Unix wxSocket implementation, we always need asynchronous socket notifications now (and this was always the case under Windows anyhow), even if we don't always generate wx events corresponding to them
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57569 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-26 20:20:46 +00:00
Vadim Zeitlin
c6b1063250
refactor Input/Output_Timeout: don't duplicate the same code in MSW/Unix code and also don't duplicate it for input and output, one function is enough for both
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57558 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-25 20:27:35 +00:00
Vadim Zeitlin
07792edb2e
use void pointers, not char ones, in socket IO functions
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57546 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-25 18:29:08 +00:00
Vadim Zeitlin
54cb21d692
remove wxSocketManager::CreateSocket() function, we don't need to have different wxSocketImpl implementation for the same platform, all the differences between console and GUI applications are abstracted by wxSocketManager::Install/Uninstall_Callback() methods
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57000 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-28 15:06:50 +00:00
Vadim Zeitlin
acd523a964
move enabled callbacks flag down to wxSocketImplUnix from wxSocketImplFDIO, this allows to get rid of the letter
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56999 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-28 15:01:41 +00:00
Vadim Zeitlin
a9d859df6f
make wxSocketImplUnix inherit from wxFDIOHandler as they're used for almost the same purpose; this removes the need for the bridge wxSocketOHandler class
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56998 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-28 14:39:49 +00:00
Vadim Zeitlin
9123889f20
no real changes, just moved wxSocketImplUnix ctor inline
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56997 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-28 13:43:41 +00:00
Vadim Zeitlin
6091364135
rename various gsock* files to sock* (except for MSW where this will be done later)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56995 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-28 13:04:47 +00:00