Vadim Zeitlin 
							
						 
					 
					
						
						
							
						
						6bcc1145fe 
					 
					
						
						
							
							Cleanly separate GUI socket-related code from net library.  
						
						... 
						
						
						
						This fixes linking problems under Unix introduced by recent changes which
fixed previous problems which were due to files not being linked in at all.
In order to provide a clean separation between base, net and core libraries we
now use the same wxSocketManager (wxSocketFDBasedManager), defined in net
library for both console and GUI Unix applications and just use different FD
IO manager for them: the latter can be defined in base and core libraries as
it doesn't involve wxSocketImpl at all, only its base wxFDIOHandler class.
At more detailed level, these changes required:
 1. Adding the new wxFDIOManager class.
 2. Refactoring the old (and now removed) wxSocketFDIOManager to use the same
    code as wxSocketFDIOManager. This involved:
  a) Adding handler and direction parameter to RemoveInput().
  b) Storing the mask of registered events in wxFDIOHandler itself.
  c) Defining wxFDIOManagerUnix which works with wxFDIODispatcher.
 3. Changing the traits classes in Unix ports to define GetFDIOManager()
    instead of GetSocketManager().
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61688  c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 
						
						
					 
					
						2009-08-17 23:02:46 +00:00 
						 
				 
			
				
					
						
							
							
								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 
							
						 
					 
					
						
						
							
						
						9a83f86094 
					 
					
						
						
							
							Globally replace _T() with wxT().  
						
						... 
						
						
						
						Standardize on using a single macro across all wxWidgets sources and solve the name clash with Sun CC standard headers (see #10660 ).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61508  c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 
						
						
					 
					
						2009-07-23 20:30:22 +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 
						 
				 
			
				
					
						
							
							
								Václav Slavík 
							
						 
					 
					
						
						
							
						
						86e9b8f28f 
					 
					
						
						
							
							wxDFB: use Unix event loop and timers ( fixes   #10408 )  
						
						... 
						
						
						
						git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58520  c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 
						
						
					 
					
						2009-01-30 15:21:47 +00:00 
						 
				 
			
				
					
						
							
							
								Václav Slavík 
							
						 
					 
					
						
						
							
						
						cd720f7e16 
					 
					
						
						
							
							wxEpollDispatcher is in wxBase, not wxCore - fixed to use WXDLLIMPEXP_BASE  
						
						... 
						
						
						
						git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58487  c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 
						
						
					 
					
						2009-01-29 00:26:40 +00:00 
						 
				 
			
				
					
						
							
							
								Vadim Zeitlin 
							
						 
					 
					
						
						
							
						
						a12698abb7 
					 
					
						
						
							
							added wxFDIODispatcher::HasPending() and implemented correctly wxConsoleEventLoop::Pending() using it to fix the pending events processing in console event loop based programs; also changed wxFDIODispatcher::Dispatch() return type/value to be able to indicate the errors  
						
						... 
						
						
						
						git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57804  c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 
						
						
					 
					
						2009-01-03 01:21: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 
							
						 
					 
					
						
						
							
						
						aa8cbe0b64 
					 
					
						
						
							
							return true if we did anything in NotifyExpired()  
						
						... 
						
						
						
						git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57570  c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 
						
						
					 
					
						2008-12-26 22:27:02 +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 
						 
				 
			
				
					
						
							
							
								Vadim Zeitlin 
							
						 
					 
					
						
						
							
						
						04021d6fac 
					 
					
						
						
							
							made Dispatch() return bool indicating whether we processed any events inside it or if the timeout expired  
						
						... 
						
						
						
						git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56358  c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 
						
						
					 
					
						2008-10-16 12:33:05 +00:00 
						 
				 
			
				
					
						
							
							
								Vadim Zeitlin 
							
						 
					 
					
						
						
							
						
						d31a4a84fb 
					 
					
						
						
							
							don't leak epoll descriptor  
						
						... 
						
						
						
						git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47473  c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 
						
						
					 
					
						2007-07-14 20:22:27 +00:00 
						 
				 
			
				
					
						
							
							
								Vadim Zeitlin 
							
						 
					 
					
						
						
							
						
						5e1eac149f 
					 
					
						
						
							
							create the single global IO dispatcher in wxFDIODispatcher; don't use wxSelectDispatcher in wxGSocket as the global dispatcher may be of a different type (modified patch 1733626)  
						
						... 
						
						
						
						git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47471  c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 
						
						
					 
					
						2007-07-14 20:18:38 +00:00 
						 
				 
			
				
					
						
							
							
								Vadim Zeitlin 
							
						 
					 
					
						
						
							
						
						7523de907d 
					 
					
						
						
							
							replaced wxFDIODispatcher::RunLoop() with Dispatch() which handles only one event at a time (part 1 of the patch 1733626)  
						
						... 
						
						
						
						git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47470  c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 
						
						
					 
					
						2007-07-14 19:50:38 +00:00 
						 
				 
			
				
					
						
							
							
								Vadim Zeitlin 
							
						 
					 
					
						
						
							
						
						af57c51ab7 
					 
					
						
						
							
							changed wxFDIODispatcher::UnregisterFD() to take only fd, without flags, and unregister it unconditionally; use ModifyFD() to just change the flags (modified part of patch 1733626)  
						
						... 
						
						
						
						git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47469  c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 
						
						
					 
					
						2007-07-14 19:41:46 +00:00 
						 
				 
			
				
					
						
							
							
								Vadim Zeitlin 
							
						 
					 
					
						
						
							
						
						a187327964 
					 
					
						
						
							
							Added wxUSE_CONSOLE_EVENTLOOP and wxUSE_SELECT/EPOLLDISPATCHER guards;  
						
						... 
						
						
						
						put checks for them in the new Unix-specific wx/unix/chkconf.h file
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47465  c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 
						
						
					 
					
						2007-07-14 19:06:18 +00:00 
						 
				 
			
				
					
						
							
							
								Vadim Zeitlin 
							
						 
					 
					
						
						
							
						
						3c029873c6 
					 
					
						
						
							
							check for wxUSE_TIMER in headers, not the files including them  
						
						... 
						
						
						
						git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47323  c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 
						
						
					 
					
						2007-07-11 00:00:33 +00:00 
						 
				 
			
				
					
						
							
							
								Vadim Zeitlin 
							
						 
					 
					
						
						
							
						
						74e10fcc6a 
					 
					
						
						
							
							reset one shot timer internal state instead of leaving it thinking that it's still running (mdified patch 1730597)  
						
						... 
						
						
						
						git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46324  c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 
						
						
					 
					
						2007-06-04 13:34:54 +00:00 
						 
				 
			
				
					
						
							
							
								Vadim Zeitlin 
							
						 
					 
					
						
						
							
						
						ad8d42f83c 
					 
					
						
						
							
							factor out the fd<->handlers map from wxFDIODispatcher into a separate wxMappedFDIODispatcher class (patch 1729395)  
						
						... 
						
						
						
						git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46274  c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 
						
						
					 
					
						2007-06-02 13:51:05 +00:00 
						 
				 
			
				
					
						
							
							
								Vadim Zeitlin 
							
						 
					 
					
						
						
							
						
						b46b1d59d6 
					 
					
						
						
							
							implement event loop for console applications (heavily modified patch 1715735)  
						
						... 
						
						
						
						git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46029  c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 
						
						
					 
					
						2007-05-14 23:43:39 +00:00 
						 
				 
			
				
					
						
							
							
								Vadim Zeitlin 
							
						 
					 
					
						
						
							
						
						c2ca375c56 
					 
					
						
						
							
							preparation for allowing to use wxTimer in wxBase (heavily modified patch 1113088):  
						
						... 
						
						
						
						1. Changed wxTimer to use wxTimerImpl
2. Added Unix-specific generic timer implementation
3. Added wxAppTraits::CreateTimerImpl()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45544  c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 
						
						
					 
					
						2007-04-20 01:29:16 +00:00