]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/socket.cpp
Fixed from Mumit Khan to allow DLL compilation for mingw32
[wxWidgets.git] / src / common / socket.cpp
index 5f23f76f9cf4df5555613015a65e2f0a09ec2c81..a00beb5e2f844460bf8f279690578cad5ad2f518 100644 (file)
@@ -33,6 +33,7 @@
 #include "wx/utils.h"
 #include "wx/module.h"
 #include "wx/log.h"
+#include "wx/intl.h"
 
 #include <stdlib.h>
 #include <string.h>
 #include "wx/socket.h"
 
 
-#if defined(__WXMSW__) || defined(__WXPM__)
-#define PROCESS_EVENTS() wxYield()
+#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()
+    #include <gtk/gtk.h>
+    #define PROCESS_EVENTS() gtk_main_iteration()
 #endif
 
 
 // --------------------------------------------------------------
 // ClassInfos
 // --------------------------------------------------------------
-#if !USE_SHARED_LIBRARY
 IMPLEMENT_CLASS(wxSocketBase, wxObject)
 IMPLEMENT_CLASS(wxSocketServer, wxSocketBase)
 IMPLEMENT_CLASS(wxSocketClient, wxSocketBase)
 IMPLEMENT_DYNAMIC_CLASS(wxSocketEvent, wxEvent)
-#endif
 
 class wxSocketState : public wxObject
 {
 public:
   bool notify_state;
   GSocketEventFlags evt_notify_state;
-  wxSocketBase::wxSockFlags socket_flags;
+  wxSockFlags socket_flags;
   wxSocketBase::wxSockCbk c_callback;
   char *c_callback_data;
 
@@ -80,8 +79,7 @@ public:
 // 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),
@@ -156,7 +154,7 @@ public:
 
   void Notify()
   {
-    *m_state = m_new_val;  // Change the value
+    *m_state = (int)m_new_val;  // Change the value
   }
 };
 
@@ -179,7 +177,7 @@ wxUint32 wxSocketBase::DeferRead(char *buffer, wxUint32 nbytes)
   timer.m_state = (int *)&m_defer_buffer;
   timer.m_new_val = 0;
 
-  timer.Start(m_timeout * 1000, FALSE);
+  timer.Start((int)(m_timeout * 1000), FALSE);
 
   // If the socket is readable, call DoDefer for the first time
   if (GSocket_Select(m_socket, GSOCK_INPUT_FLAG))
@@ -316,7 +314,7 @@ wxSocketBase& wxSocketBase::ReadMsg(char* buffer, wxUint32 nbytes)
 
   if (sig != 0xfeeddead)
   {
-    wxLogMessage(T("Warning: invalid signature returned to ReadMsg"));
+    wxLogWarning( _("TCP: invalid signature returned to ReadMsg."));
     goto exit;
   }
 
@@ -354,8 +352,8 @@ wxSocketBase& wxSocketBase::ReadMsg(char* buffer, wxUint32 nbytes)
     do
     {
       discard_len = ((len2 > MAX_DISCARD_SIZE)? MAX_DISCARD_SIZE : len2);
-      discard_len = _Read(discard_buffer, discard_len);
-      len2 -= discard_len;
+      discard_len = _Read(discard_buffer, (wxUint32)discard_len);
+      len2 -= (wxUint32)discard_len;
     }
     while ((discard_len > 0) && len2);
 
@@ -374,7 +372,7 @@ wxSocketBase& wxSocketBase::ReadMsg(char* buffer, wxUint32 nbytes)
 
   if (sig != 0xdeadfeed)
   {
-    //wxLogMessage(T("Warning: invalid signature returned to ReadMsg"));
+    //wxLogMessage(wxT("Warning: invalid signature returned to ReadMsg"));
     goto exit;
   }
 
@@ -433,7 +431,7 @@ wxUint32 wxSocketBase::DeferWrite(const char *buffer, wxUint32 nbytes)
   timer.m_state   = (int *)&m_defer_buffer;
   timer.m_new_val = 0;
 
-  timer.Start(m_timeout * 1000, FALSE);
+  timer.Start((int)(m_timeout * 1000), FALSE);
 
   // If the socket is writable, call DoDefer for the first time
   if (GSocket_Select(m_socket, GSOCK_OUTPUT_FLAG))
@@ -452,8 +450,8 @@ wxUint32 wxSocketBase::DeferWrite(const char *buffer, wxUint32 nbytes)
   m_defer_timer = NULL;
   m_defering = NO_DEFER;
 
-  wxString s;
-  s.Printf("Saliendo de DeferWrite: total %d bytes", nbytes-m_defer_nbytes);
+  //wxString s;
+  //s.Printf(wxT("Saliendo de DeferWrite: total %d bytes"), nbytes-m_defer_nbytes);
   //wxLogMessage(s);
 
   return nbytes-m_defer_nbytes;
@@ -650,7 +648,7 @@ void wxSocketBase::DoDefer()
   else
   {
     m_defer_buffer += ret;
-    m_defer_timer->Start(m_timeout * 1000, FALSE);
+    m_defer_timer->Start((int)(m_timeout * 1000), FALSE);
   }
 
   //wxLogMessage("DoDefer ha transferido %d bytes", ret);
@@ -800,7 +798,7 @@ bool wxSocketBase::_Wait(long seconds, long milliseconds, wxSocketEventFlags fla
   {
     timer.m_state = &state;
     timer.m_new_val = 0;
-    timer.Start(timeout, TRUE);
+    timer.Start((int)timeout, TRUE);
   }
 
   // Active polling (without using events)
@@ -890,7 +888,7 @@ void wxSocketBase::SetTimeout(long seconds)
   m_timeout = seconds;
 
   if (m_socket)
-    GSocket_SetTimeout(m_socket, m_timeout);
+    GSocket_SetTimeout(m_socket, m_timeout * 1000);
 }
 
 // --------------------------------------------------------------
@@ -1106,7 +1104,7 @@ wxSocketServer::wxSocketServer(wxSockAddress& addr_man,
     return;
   }
 
-  GSocket_SetTimeout(m_socket, m_timeout);
+  GSocket_SetTimeout(m_socket, m_timeout * 1000);
   GSocket_SetCallback(m_socket, GSOCK_INPUT_FLAG | GSOCK_OUTPUT_FLAG |
                                 GSOCK_LOST_FLAG | GSOCK_CONNECTION_FLAG,
                                 wx_socket_callback, (char *)this);
@@ -1144,7 +1142,7 @@ bool wxSocketServer::AcceptWith(wxSocketBase& sock, bool wait)
   sock.m_socket = child_socket;
   sock.m_connected = TRUE;
 
-  GSocket_SetTimeout(sock.m_socket, sock.m_timeout);
+  GSocket_SetTimeout(sock.m_socket, sock.m_timeout * 1000);
   GSocket_SetCallback(sock.m_socket, GSOCK_INPUT_FLAG | GSOCK_OUTPUT_FLAG |
                                      GSOCK_LOST_FLAG | GSOCK_CONNECTION_FLAG,
                                      wx_socket_callback, (char *)&sock);
@@ -1208,7 +1206,7 @@ bool wxSocketClient::Connect(wxSockAddress& addr_man, bool wait)
   if (!m_socket)
     return FALSE;
 
-  GSocket_SetTimeout(m_socket, m_timeout);
+  GSocket_SetTimeout(m_socket, m_timeout * 1000);
   GSocket_SetCallback(m_socket, GSOCK_INPUT_FLAG | GSOCK_OUTPUT_FLAG |
                                 GSOCK_LOST_FLAG | GSOCK_CONNECTION_FLAG,
                                 wx_socket_callback, (char *)this);