Commit Graph

101 Commits

Author SHA1 Message Date
Vadim Zeitlin
0623b0f001 Add wxSocketBase::GetSocket().
Provide direct access to the underlying socket descriptor.

Closes #8829.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73837 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-04-22 10:45:30 +00:00
Vadim Zeitlin
d8986023a3 Define wxSOCKET_XXX flags as wxSOCKET_XXX_READ|wxSOCKET_XXX_WRITE.
The recently introduced (in r72591) wxSOCKET_{WAITALL,NOWAIT}_{READ,WRITE}
flags weere for some reason completely different and unrelated to the existing
bidirectional wxSOCKET_{WAITALL,NOWAIT} ones. Change this by defining the
bidirectional version simply as the sum of the two others. This makes much
more sense than testing for either wxSOCKET_XXX or wxSOCKET_XXX_READ or
wxSOCKET_XXX_WRITE being specified.

And it also fixes an assert in wxSocketWaitModeChanger where a sanity check
failed when this class was used with wxSOCKET_WAITALL|wxSOCKET_WAITALL_READ.

See #14506.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72828 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-31 00:17:17 +00:00
Vadim Zeitlin
294a09aa8c Add per-direction wxSocket wait flags and byte counters.
Allow to specify whether the socket should block until all the data is read or
written or, on the contrary, avoid blocking only when reading or writing
instead of always using the same behaviour in both directions.

Also add separate counters for the bytes read/written instead of using the
same one for both.

These changes make it possible to use the same socket for reading/writing in
different threads.

Closes #14506.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72591 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-30 22:21:44 +00:00
Dimitri Schoolwerth
80fdcdb90e No changes, synchronised source names that appear commented at the top of files with the actual path to the files.
Fixed commented names (path, filename, and extension) of files in include/ and src/. Prepended the names in src/ with "src/" everywhere, while starting those in include/wx/ with "wx/".

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67254 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-20 00:14:35 +00:00
Vadim Zeitlin
4017f5ca49 wxSocket::Initialize() and Shutdown() are for main thread only.
Calling Initialize() from another thread could never work before but it wasn't
clear that this was the case so document it in the functions comments and
documentation now and add asserts checking that they are called from the main
thread only.

Also simplify the code as we don't actually need to do any reference-counting
here and a simple boolean flag indicating whether the sockets are initialized
is enough.

Closes #11119.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61985 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-21 08:44:35 +00:00
Vadim Zeitlin
c0c133e13b add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-08 11:45:59 +00:00
Vadim Zeitlin
9b11752c4f require semicolon after wxDECLARE/DEFINE_EVENT() (closes #10456)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58718 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-07 18:59:25 +00:00
Francesco Montorsi
d48b06bd90 check in the 'selective yield' patch (see ticket #10320):
- implements YieldFor() with event filtering for wxMSW and wxGTK,
  adds TODO markers in other ports;
- replaces wxYield() in GTK's clipboard code with a wxTheApp->YieldFor() call, thus fixing possible reentrancies 
(and modifies clipboard sample to test synchronous IsSupported calls)
- replaces wxYieldIfNeeded() calls in wxProgressDialog with wxTheApp->YieldFor() calls, so that it processes only 
UI/user-input events, thus fixing the race condition visible in the "thread" sample
- documents the new functions


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58654 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-04 17:42:28 +00:00
Francesco Montorsi
6214e8d571 make wxSocketBase::SetTimeout virtual and make it protected in wxFTP
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58130 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-16 13:34:44 +00:00
Vadim Zeitlin
3c77890141 add more flexible and safer template Connect() overloads (#10000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58039 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-12 14:26:13 +00:00
Vadim Zeitlin
ebbf740764 streamline handling of wxSOCKET_LOST in DoWait()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57798 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-02 22:07:45 +00:00
Vadim Zeitlin
f26d81383f no changes, just reformat/indent consistently
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57797 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-02 21:58:09 +00:00
Vadim Zeitlin
365b8793d3 use guard classes automatically restoring the old state in their dtor instead of manually changing wxSocketBase::m_reading/writing/flags
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57778 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-02 17:34:16 +00:00
Vadim Zeitlin
6f405b31b2 fix WaitForXXX() to work as before: if the socket is already ready for reading/writing they should return immediately
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57725 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-02 01:00:40 +00:00
Vadim Zeitlin
b67397a779 added wxSocket::ShutdownOutput() (closes #9229)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-30 11:27:41 +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
64b1cea09a got rid of wxSocketBase::m_error which could get out of sync with wxSocketImpl::m_error -- one error indicator is enough
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-27 17:56:03 +00:00
Vadim Zeitlin
5c1193e090 remember the events we were notified about in OnRequest() (not used yet but necessary for upcoming changes)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57565 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-26 14:33:52 +00:00
Vadim Zeitlin
51fe4b60ab Streamline wxSocket code: wxSocketBase now uses wxSocketImpl (previously known
as GSocket) which is a base class with various wxSocketImplXXX implementations
provided by different wxSocketManagers.

Share more code between ports (still not finished).

Refactor some code inside wxSocketImpl itself to be less redundant and fixed a
couple of minor bugs in the process.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-28 12:47:07 +00:00
Vadim Zeitlin
04889c59c6 move wx/gsocket.h to wx/private/gsocket.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56976 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-26 12:21:56 +00:00
Vadim Zeitlin
2d46f281a5 added wxSocketBase::GetTimeout() to match existing SetTimeout()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56933 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-23 13:11:25 +00:00
Vadim Zeitlin
cc0972a251 no real changes, just also rename _Read/_Write() to DoRead/DoWrite() and clean them a little more too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56277 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-13 13:24:48 +00:00
Vadim Zeitlin
60ee017274 Cleanup of wxSocket::_Wait():
- Rename to DoWait() to avoid symbols starting with underscores.
 - Added comments explaining how does it work.
 - Remove the pointless timeout manipulations: GSocket::Select() doesn't
   use timeout (any more?) anyhow.

Also pass GSOCK_LOST_FLAG to DoWait() from WaitForWrite() for the same reasons
it is done in WaitForRead().


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56275 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-13 13:00:49 +00:00
Vadim Zeitlin
c91574928d add wxSocket::IsClosed(), use it to implement Eof() in wxSocketStream
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-12 02:28:12 +00:00
Vadim Zeitlin
dde65a6040 no changes, just removed the unnecessary inline keywords
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54587 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-12 02:12:58 +00:00
Vadim Zeitlin
98f80f2f76 remove unused private wxSocketBase::m_lastError
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54585 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-12 02:01:55 +00:00
Vadim Zeitlin
72ac4e888a take const address objects in wxSocketClient::Connect() and wxSocketBase::SetLocal()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54504 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-06 02:21:39 +00:00
Vadim Zeitlin
8c029a5b02 added SetInitialSocketBuffers() to allow changing the send/receive buffer sizes (patch 1829576)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50028 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-17 15:21:26 +00:00
Vadim Zeitlin
60edcf4535 added support for broadcasting to UDP sockets (patch 1740266)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47126 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-04 21:33:11 +00:00
Václav Slavík
47b378bd88 removed extra semicolons (patch #1700459; fixes compilation with gcc's -pedantic flag)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45450 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-14 09:58:37 +00:00
Vadim Zeitlin
b7cacb43db add IsOk() to all classes having Ok() method (patch 1570985)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41751 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-08 21:56:55 +00:00
Kevin Hock
30dfb74488 Make the Connect that also takes a local bind port non-virtual. This silences some compiler warnings (Borland, Watcom). Plus, it's not likely that this method would need to be overridden anyway since it has rather limited and specific uses.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38517 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-04-02 04:56:18 +00:00
Kevin Hock
30bbf68d3a Make SetLocal actually work instead of crashing immediately; due to required longevity of the item to make it from SetLocal to Connect, we need to use a specifc address type.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37759 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-02-28 02:04:29 +00:00
Kevin Hock
33d925b0d9 Add SetLocal method; overload Connect to accept a local address and move common Connect code into DoConnect; DoConnect handles wxSOCKET_REUSEADDR flag and setting local address [ Heavily modified and expanded patch 1415505 ]
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37506 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-02-11 23:39:25 +00:00
Vadim Zeitlin
fbfb8bcc3f added missing consts and pass objects by const reference instead of by value (patch 1205869)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35665 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-09-24 21:43:15 +00:00
Mart Raudsepp
8907154c1a Nuke #pragma implementation/interface's
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-09-23 12:56:45 +00:00
Włodzimierz Skiba
8bc3ec1ff5 Casting fix for events. Needs check by ARM eVC4 users.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32686 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-03-08 20:53:16 +00:00
Vadim Zeitlin
7fa03f0434 define wxFooHandler() macros for all wxFooEvents to make it possible to use Connect() type-safely; simplified event macros definitions by extracing common part to wx__DECLARE_EVTn()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32048 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-02-14 23:53:48 +00:00
Włodzimierz Skiba
d775fa8235 Source cleaning: whitespaces, tabs, -1/wxID_ANY/wxNOT_FOUND/wxDefaultCoord, TRUE/true, FALSE/false.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29257 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-09-22 14:38:52 +00:00
David Elliott
57b1deb3e9 Use native C++ GSocket interface
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-08-06 22:14:59 +00:00
Vadim Zeitlin
74c481d117 replaced my recent GSocket_SetReuseAddr() addition with GSocket_SetReusable() from the patch 992473; it also adds and documents wxSOCKET_REUSEADDR flag
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28494 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-07-25 17:06:01 +00:00
Vadim Zeitlin
372c511b70 don't include wx/wxprec.h from the headers (patch 993136)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28489 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-07-25 16:44:47 +00:00
Vadim Zeitlin
bfa7bf7d6b basic UDP support (patch 835128)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28453 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-07-25 11:16:31 +00:00
Julian Smart
655719367a Use old licence name
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27408 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-05-23 20:53:33 +00:00
Julian Smart
77ffb5937e Name and version changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27404 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-05-23 14:56:36 +00:00
Vadim Zeitlin
3a818b15a1 use static_cast<> in event table macros for type safety (patch 843206)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25721 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-02-10 22:15:19 +00:00
Václav Slavík
a3bf7524f3 removed WXWIN_COMPATIBILITY and WXWIN_COMPATIBILITY_2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22966 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-08-17 12:50:53 +00:00
Václav Slavík
1202890513 added support for gcc precompiled headers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22722 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-08-09 12:38:21 +00:00
Václav Slavík
7c4728f633 split wxBase into wxBase and wxNet libraries
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-07-27 22:41:06 +00:00
Václav Slavík
a6cbc4db3d compilation fixes for Vadim's changes and Borland C++
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22230 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-07-22 11:13:50 +00:00