]> git.saurik.com Git - wxWidgets.git/commitdiff
Added wxFDIOHandler::IsOk() and use it with wxSocketImplUnix.
authorVadim Zeitlin <vadim@wxwidgets.org>
Mon, 17 Aug 2009 23:02:18 +0000 (23:02 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Mon, 17 Aug 2009 23:02:18 +0000 (23:02 +0000)
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

include/wx/private/fdiodispatcher.h
include/wx/unix/private/sockunix.h
src/gtk/sockgtk.cpp
src/gtk1/sockgtk.cpp

index f37e0217a457e8a9dbfdcdd508e049de8b8b78bb..bc372926dd4c76714fed00fc9ba1b7b8646b89f8 100644 (file)
@@ -26,6 +26,10 @@ public:
     // called when there is exception on descriptor
     virtual void OnExceptionWaiting() = 0;
 
+    // called to check if the handler is still valid, only used by
+    // wxSocketImplUnix currently
+    virtual bool IsOk() const { return true; }
+
     // virtual dtor for the base class
     virtual ~wxFDIOHandler() { }
 };
index a5832a9443ced4369e81ba47b1532a2b01b12aa4..4b8f80afe366289b98c9cc0d725b5bd97e9558eb 100644 (file)
@@ -52,6 +52,7 @@ public:
     virtual void OnReadWaiting();
     virtual void OnWriteWaiting();
     virtual void OnExceptionWaiting();
+    virtual bool IsOk() const { return m_fd != INVALID_SOCKET; }
 
     // Unix-specific functions used by wxSocketFDIOManager only
     bool HasAnyEnabledCallbacks() const { return m_enabledCallbacks != 0; }
index c8d449cfd86638627b813b39f108f03d8ed3614c..7c0ed5c27d161e0e2a5fd8346ed0c647cf49af86 100644 (file)
@@ -37,7 +37,7 @@ void wxSocket_GDK_Input(gpointer data,
         // we could have lost connection while reading in which case we
         // shouldn't call OnWriteWaiting() as the socket is now closed and it
         // would assert
-        if ( handler->m_fd == INVALID_SOCKET )
+        if ( !handler->IsOk() )
             return;
     }
 
index c8d449cfd86638627b813b39f108f03d8ed3614c..7c0ed5c27d161e0e2a5fd8346ed0c647cf49af86 100644 (file)
@@ -37,7 +37,7 @@ void wxSocket_GDK_Input(gpointer data,
         // we could have lost connection while reading in which case we
         // shouldn't call OnWriteWaiting() as the socket is now closed and it
         // would assert
-        if ( handler->m_fd == INVALID_SOCKET )
+        if ( !handler->IsOk() )
             return;
     }