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
This commit is contained in:
Vadim Zeitlin
2008-11-28 12:47:07 +00:00
parent 29dbfacee2
commit 51fe4b60ab
27 changed files with 1551 additions and 2029 deletions

View File

@@ -24,29 +24,29 @@
extern "C" {
static
void _GSocket_GDK_Input(gpointer data,
void wxSocket_GDK_Input(gpointer data,
gint WXUNUSED(source),
GdkInputCondition condition)
{
GSocket *socket = (GSocket *)data;
wxSocketImpl const *socket = static_cast<wxSocketImpl *>(data);
if (condition & GDK_INPUT_READ)
if ( condition & GDK_INPUT_READ )
socket->Detected_Read();
if (condition & GDK_INPUT_WRITE)
if ( condition & GDK_INPUT_WRITE )
socket->Detected_Write();
}
}
class GTKSocketManager : public GSocketInputBasedManager
class GTKSocketManager : public wxSocketInputBasedManager
{
public:
virtual int AddInput(GSocket *socket, SocketDir d)
virtual int AddInput(wxSocketImpl *socket, SocketDir d)
{
return gdk_input_add
(
socket->m_fd,
d == FD_OUTPUT ? GDK_INPUT_WRITE : GDK_INPUT_READ,
_GSocket_GDK_Input,
wxSocket_GDK_Input,
socket
);
}
@@ -57,7 +57,7 @@ public:
}
};
GSocketManager *wxGUIAppTraits::GetSocketManager()
wxSocketManager *wxGUIAppTraits::GetSocketManager()
{
static GTKSocketManager s_manager;
return &s_manager;