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
This commit is contained in:
Vadim Zeitlin
2007-07-14 20:18:38 +00:00
parent 7523de907d
commit 5e1eac149f
10 changed files with 121 additions and 107 deletions

View File

@@ -15,6 +15,8 @@
#include "wx/setup.h"
#endif
class wxGSocketIOHandler;
#if wxUSE_SOCKETS || defined(__GSOCKET_STANDALONE__)
#ifndef __GSOCKET_STANDALONE__
@@ -23,7 +25,7 @@
#include "gsocket.h"
#endif
class GSocketGUIFunctionsTableConcrete: public GSocketGUIFunctionsTable
class GSocketGUIFunctionsTableConcrete : public GSocketGUIFunctionsTable
{
public:
virtual bool OnInit();
@@ -84,6 +86,7 @@ public:
/* DFE: We can't protect these data member until the GUI code is updated */
/* protected: */
int m_fd;
wxGSocketIOHandler *m_handler;
GAddress *m_local;
GAddress *m_peer;
GSocketError m_error;

View File

@@ -20,11 +20,11 @@
class WXDLLIMPEXP_CORE wxEpollDispatcher : public wxFDIODispatcher
{
public:
// get pointer to the unique instance of this class, can return NULL if
// create a new instance of this class, can return NULL if
// epoll() is not supported on this system
//
// do not delete the returned pointer
static wxEpollDispatcher *Get();
// the caller should delete the returned pointer
static wxEpollDispatcher *Create();
// implement base class pure virtual methods
virtual bool RegisterFD(int fd, wxFDIOHandler* handler, int flags = wxFDIO_ALL);
@@ -33,11 +33,8 @@ public:
virtual void Dispatch(int timeout = TIMEOUT_INFINITE);
private:
// ctor is private, use Get()
wxEpollDispatcher();
// return true if the object was successfully initialized
bool IsOk() const { return m_epollDescriptor != -1; }
// ctor is private, use Create()
wxEpollDispatcher(int epollDescriptor);
int m_epollDescriptor;
};