]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/socket.cpp
VTK wrapper of vtkRenderWindow for wxPython. Tested on MSW so far.
[wxWidgets.git] / src / common / socket.cpp
index dba14f4829e2d776cb1679f527bcd02c47e8dec9..0f7a63316572f5aa12582fd38cc4dd34d8598285 100644 (file)
 #include "wx/sckaddr.h"
 #include "wx/socket.h"
 
 #include "wx/sckaddr.h"
 #include "wx/socket.h"
 
-// GRG: Why is this needed?
 
 
-#ifdef __WXGTK__
-#include <gtk/gtk.h>
-#define wxYield() gtk_main_iteration()
-#endif  
+#if defined(__WXMSW__) || defined(__WXPM__) || defined(__WXMOTIF__) || defined(__WXMAC__)
+    #define PROCESS_EVENTS() wxYield()
+#elif defined(__WXGTK__)
+    #include <gtk/gtk.h>
+    #define PROCESS_EVENTS() gtk_main_iteration()
+#endif
+
 
 // --------------------------------------------------------------
 // ClassInfos
 
 // --------------------------------------------------------------
 // ClassInfos
@@ -66,7 +68,7 @@ class wxSocketState : public wxObject
 public:
   bool notify_state;
   GSocketEventFlags evt_notify_state;
 public:
   bool notify_state;
   GSocketEventFlags evt_notify_state;
-  wxSocketBase::wxSockFlags socket_flags;
+  wxSockFlags socket_flags;
   wxSocketBase::wxSockCbk c_callback;
   char *c_callback_data;
 
   wxSocketBase::wxSockCbk c_callback;
   char *c_callback_data;
 
@@ -78,8 +80,7 @@ public:
 // wxSocketBase ctor and dtor
 // --------------------------------------------------------------
 
 // wxSocketBase ctor and dtor
 // --------------------------------------------------------------
 
-wxSocketBase::wxSocketBase(wxSocketBase::wxSockFlags _flags,
-         wxSocketBase::wxSockType _type) :
+wxSocketBase::wxSocketBase(wxSockFlags _flags, wxSockType _type) :
   wxEvtHandler(),
   m_socket(NULL), m_id(-1),
   m_flags(_flags), m_type(_type),
   wxEvtHandler(),
   m_socket(NULL), m_id(-1),
   m_flags(_flags), m_type(_type),
@@ -186,9 +187,9 @@ wxUint32 wxSocketBase::DeferRead(char *buffer, wxUint32 nbytes)
     DoDefer();
   }
 
     DoDefer();
   }
 
-  // Wait for buffer completion. 
+  // Wait for buffer completion.
   while (m_defer_buffer != NULL)
   while (m_defer_buffer != NULL)
-    wxYield();
+    PROCESS_EVENTS();
 
   timer.Stop();
 
 
   timer.Stop();
 
@@ -233,13 +234,13 @@ wxUint32 wxSocketBase::_Read(char* buffer, wxUint32 nbytes)
 
   // If the socket is not connected, or we have got the whole
   // needed buffer, return immedately
 
   // If the socket is not connected, or we have got the whole
   // needed buffer, return immedately
-  if (!m_connected || !m_socket || !nbytes) 
+  if (!m_connected || !m_socket || !nbytes)
     return total;
 
   // Possible combinations (they are checked in this order)
   // NOWAIT
   // SPEED | WAITALL
     return total;
 
   // Possible combinations (they are checked in this order)
   // NOWAIT
   // SPEED | WAITALL
-  // SPEED          
+  // SPEED
   // WAITALL
   // NONE
   //
   // WAITALL
   // NONE
   //
@@ -314,7 +315,7 @@ wxSocketBase& wxSocketBase::ReadMsg(char* buffer, wxUint32 nbytes)
 
   if (sig != 0xfeeddead)
   {
 
   if (sig != 0xfeeddead)
   {
-    wxLogMessage(_T("Warning: invalid signature returned to ReadMsg"));
+    wxLogMessage(wxT("Warning: invalid signature returned to ReadMsg"));
     goto exit;
   }
 
     goto exit;
   }
 
@@ -372,7 +373,7 @@ wxSocketBase& wxSocketBase::ReadMsg(char* buffer, wxUint32 nbytes)
 
   if (sig != 0xdeadfeed)
   {
 
   if (sig != 0xdeadfeed)
   {
-    //wxLogMessage(_T("Warning: invalid signature returned to ReadMsg"));
+    //wxLogMessage(wxT("Warning: invalid signature returned to ReadMsg"));
     goto exit;
   }
 
     goto exit;
   }
 
@@ -440,9 +441,9 @@ wxUint32 wxSocketBase::DeferWrite(const char *buffer, wxUint32 nbytes)
     DoDefer();
   }
 
     DoDefer();
   }
 
-  // Wait for buffer completion. 
+  // Wait for buffer completion.
   while (m_defer_buffer != NULL)
   while (m_defer_buffer != NULL)
-    wxYield();
+    PROCESS_EVENTS();
 
   timer.Stop();
 
 
   timer.Stop();
 
@@ -451,7 +452,7 @@ wxUint32 wxSocketBase::DeferWrite(const char *buffer, wxUint32 nbytes)
   m_defering = NO_DEFER;
 
   wxString s;
   m_defering = NO_DEFER;
 
   wxString s;
-  s.Printf("Saliendo de DeferWrite: total %d bytes", nbytes-m_defer_nbytes);
+  s.Printf(wxT("Saliendo de DeferWrite: total %d bytes"), nbytes-m_defer_nbytes);
   //wxLogMessage(s);
 
   return nbytes-m_defer_nbytes;
   //wxLogMessage(s);
 
   return nbytes-m_defer_nbytes;
@@ -488,7 +489,7 @@ wxUint32 wxSocketBase::_Write(const char *buffer, wxUint32 nbytes)
   // Possible combinations (they are checked in this order)
   // NOWAIT
   // SPEED | WAITALL
   // Possible combinations (they are checked in this order)
   // NOWAIT
   // SPEED | WAITALL
-  // SPEED          
+  // SPEED
   // WAITALL
   // NONE
   //
   // WAITALL
   // NONE
   //
@@ -684,7 +685,7 @@ wxSocketBase& wxSocketBase::Discard()
 
   // TODO: TriggerRead
   return *this;
 
   // TODO: TriggerRead
   return *this;
-  
+
 #undef MAX_BUFSIZE
 }
 
 #undef MAX_BUFSIZE
 }
 
@@ -770,7 +771,7 @@ void wxSocketBase::RestoreState()
 // they poll the socket, using GSocket_Select(), to check for
 // the specified combination of event flags, until an event
 // occurs or until the timeout ellapses. The polling loop
 // they poll the socket, using GSocket_Select(), to check for
 // the specified combination of event flags, until an event
 // occurs or until the timeout ellapses. The polling loop
-// calls wxYield(), so this won't block the GUI.
+// calls PROCESS_EVENTS(), so this won't block the GUI.
 
 bool wxSocketBase::_Wait(long seconds, long milliseconds, wxSocketEventFlags flags)
 {
 
 bool wxSocketBase::_Wait(long seconds, long milliseconds, wxSocketEventFlags flags)
 {
@@ -848,7 +849,7 @@ bool wxSocketBase::_Wait(long seconds, long milliseconds, wxSocketEventFlags fla
     }
 
     if (timeout != 0)
     }
 
     if (timeout != 0)
-      wxYield();
+      PROCESS_EVENTS();
   }
   while ((state == -1) && timeout);
 
   }
   while ((state == -1) && timeout);
 
@@ -899,7 +900,7 @@ void wxSocketBase::SetFlags(wxSockFlags _flags)
 {
   m_flags = _flags;
 }
 {
   m_flags = _flags;
 }
-                    
+
 // --------------------------------------------------------------
 // wxSocketBase callback management
 // --------------------------------------------------------------
 // --------------------------------------------------------------
 // wxSocketBase callback management
 // --------------------------------------------------------------