]> git.saurik.com Git - wxWidgets.git/commitdiff
Added GSocket motif (it compiles but I didn't tested it)
authorGuilhem Lavaux <lavaux@easynet.fr>
Fri, 23 Jul 1999 17:24:25 +0000 (17:24 +0000)
committerGuilhem Lavaux <lavaux@easynet.fr>
Fri, 23 Jul 1999 17:24:25 +0000 (17:24 +0000)
Changed wxSockFlags type (switched to int)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3105 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/gsocket.h
include/wx/socket.h
src/common/socket.cpp
src/gtk/gsockgtk.c
src/gtk1/gsockgtk.c
src/motif/Makefile.am
src/motif/gsockmot.cpp [new file with mode: 0644]
src/unix/gsocket.c
src/unix/gsockunx.h

index 096cff1666980096602bb59640ec7b6e474fa11b..fce739e20e225f26e237a8863bdc64bffab1cfb3 100644 (file)
@@ -3,19 +3,6 @@
  * Name:    gsocket.h
  * Purpose: GSocket include file (system independent)
  * CVSID:   $Id$
- * Log:     $Log$
- * Log:     Revision 1.1  1999/07/22 17:51:47  GL
- * Log:     Added GSocket for Unix (only GTK for the moment)
- * Log:     Updated wxSocket to use GSocket API
- * Log:     Added a progress bar to client.cpp
- * Log:     Added CopyTo to wxMemoryOutputStream to copy the internal buffer to a specified buffer.
- * Log:     Various changes/fixes to the high-level protocols FTP/HTTP
- * Log:     Various Unicode fixes
- * Log:     Removed sckint.*
- * Log:
- * Log:     Revision 1.2  1999/07/18 15:54:28  guilhem
- * Log:     Copyright, etc.
- * Log:
  * -------------------------------------------------------------------------
  */
 #ifndef __GSOCKET_H
index b2dcf6056a64022c2df2034255e18dd066d00b65..1b23f7c07581bf8000c6eef0141e68bd8140788e 100644 (file)
@@ -39,7 +39,8 @@ class WXDLLEXPORT wxSocketBase : public wxEvtHandler
   DECLARE_CLASS(wxSocketBase)
 public:
 
-  enum wxSockFlags { NONE=0, NOWAIT=1, WAITALL=2, SPEED=4 };
+  enum { NONE=0, NOWAIT=1, WAITALL=2, SPEED=4 };
+  typedef int wxSockFlags;
   // Type of request
 
   enum wxSockType { SOCK_CLIENT, SOCK_SERVER, SOCK_INTERNAL, SOCK_UNINIT }; 
index 4e12e8971bfd4affb1ab62808130a48d4a4d89fc..08af3c1959c0d90551436127abe170313055eccd 100644 (file)
@@ -83,7 +83,7 @@ wxSocketBase::wxSocketBase(wxSocketBase::wxSockFlags _flags,
 
 wxSocketBase::wxSocketBase() :
   wxEvtHandler(),
-  m_socket(NULL), m_flags((wxSockFlags)SPEED | WAITALL), m_type(SOCK_UNINIT),
+  m_socket(NULL), m_flags(SPEED | WAITALL), m_type(SOCK_UNINIT),
   m_neededreq(GSOCK_INPUT_FLAG | GSOCK_LOST_FLAG),
   m_lcount(0), m_timeout(3600),
   m_unread(NULL), m_unrd_size(0), m_unrd_cur(0),
@@ -413,7 +413,7 @@ void wxSocketBase::Discard()
   size_t recv_size = MAX_BUFSIZE;
 
   SaveState();
-  SetFlags((wxSockFlags)(NOWAIT | SPEED));
+  SetFlags(NOWAIT | SPEED);
 
   while (recv_size == MAX_BUFSIZE) 
   {
index 85816cbddb4bda93b6876a9b374b142bd1e75bd9..2750b733187f00398df31527918960330f24ca4a 100644 (file)
@@ -1,3 +1,10 @@
+/* -------------------------------------------------------------------------
+ * Project: GSocket (Generic Socket) for WX
+ * Name:    gsockgtk.c
+ * Purpose: GSocket: GTK part
+ * CVSID:   $Id$
+ * -------------------------------------------------------------------------
+ */
 #include <stdlib.h>
 #include <gdk/gdk.h>
 #include <glib.h>
index 85816cbddb4bda93b6876a9b374b142bd1e75bd9..2750b733187f00398df31527918960330f24ca4a 100644 (file)
@@ -1,3 +1,10 @@
+/* -------------------------------------------------------------------------
+ * Project: GSocket (Generic Socket) for WX
+ * Name:    gsockgtk.c
+ * Purpose: GSocket: GTK part
+ * CVSID:   $Id$
+ * -------------------------------------------------------------------------
+ */
 #include <stdlib.h>
 #include <gdk/gdk.h>
 #include <glib.h>
index 1e501e5d2d5181f58240888523ee075e419570c0..385230ebcf20f4d3e4cd5848de12492f919f8650 100644 (file)
@@ -31,6 +31,8 @@ libwx_motif_la_SOURCES = \
  extended.c \
  parser.c \
  xmcombo.c \
+ gsocket.c \
+ gsockmot.cpp \
 \
  cmndata.cpp \
  dynarray.cpp \
@@ -90,7 +92,6 @@ libwx_motif_la_SOURCES = \
  resource.cpp \
  sckaddr.cpp \
  sckfile.cpp \
- sckint.cpp \
  sckipc.cpp \
  sckstrm.cpp \
  serbase.cpp \
diff --git a/src/motif/gsockmot.cpp b/src/motif/gsockmot.cpp
new file mode 100644 (file)
index 0000000..fa5b3d8
--- /dev/null
@@ -0,0 +1,120 @@
+// -------------------------------------------------------------------------
+// Project: GSocket (Generic Socket) for WX
+// Name:    gsockmot.cpp
+// Purpose: GSocket: Motif part
+// CVSID:   $Id$
+// Log:     $Log$
+// Log:     Revision 1.1  1999/07/23 17:24:24  GL
+// Log:     Added GSocket motif (it compiles but I didn't tested it)
+// Log:     Changed wxSockFlags type (switched to int)
+// Log:
+// -------------------------------------------------------------------------
+#include <stdlib.h>
+#include <X11/Intrinsic.h>
+#include <wx/gsocket.h>
+#include <wx/app.h>
+#include "../unix/gsockunx.h"
+
+#define wxAPP_CONTEXT ((XtAppContext)wxTheApp->GetAppContext())
+
+static void _GSocket_Motif_Input(XtPointer data, int *fid,
+                                 XtInputId *id)
+{
+  GSocket *socket = (GSocket *)data;
+
+  _GSocket_Detected_Read(socket);
+}
+
+static void _GSocket_Motif_Output(XtPointer data, int *fid,
+                                  XtInputId *id)
+{
+  GSocket *socket = (GSocket *)data;
+
+  _GSocket_Detected_Write(socket);
+}
+
+void _GSocket_GUI_Init(GSocket *socket)
+{
+  int i;
+  int *m_id;
+
+  socket->m_gui_dependent = (char *)malloc(sizeof(int)*3);
+  m_id = (int *)(socket->m_gui_dependent);
+
+  for (i=0;i<3;i++)
+    m_id[i] = -1;
+}
+
+void _GSocket_GUI_Destroy(GSocket *socket)
+{
+  int i;
+  int *m_id;
+
+  m_id = (int *)(socket->m_gui_dependent);
+
+  for (i=0;i<3;i++)
+    if (m_id[i] == -1)
+      XtRemoveInput(m_id[i]);
+
+  free(socket->m_gui_dependent);
+}
+
+void _GSocket_Install_Fallback(GSocket *socket, GSocketEvent event)
+{
+  int *m_id;
+
+  m_id = (int *)(socket->m_gui_dependent);
+
+  switch (event) {
+  case GSOCK_CONNECTION:
+  case GSOCK_LOST:
+  case GSOCK_INPUT: 
+     if (m_id[0] != -1)
+       XtRemoveInput(m_id[0]);
+     m_id[0] = XtAppAddInput(wxAPP_CONTEXT, socket->m_fd,
+                             (XtPointer *)XtInputReadMask,
+                             (XtInputCallbackProc) _GSocket_Motif_Input,
+                             (XtPointer) socket);
+     break;
+  case GSOCK_OUTPUT:
+     if (m_id[1] != -1)
+       XtRemoveInput(m_id[1]);
+     m_id[1] = XtAppAddInput(wxAPP_CONTEXT, socket->m_fd,
+                             (XtPointer *)XtInputWriteMask,
+                             (XtInputCallbackProc) _GSocket_Motif_Output,
+                             (XtPointer) socket);
+     break;
+  default: return;
+  }
+}
+
+void _GSocket_Uninstall_Fallback(GSocket *socket, GSocketEvent event)
+{
+  int c;
+  int *m_id;
+
+  m_id = (int *)(socket->m_gui_dependent);
+
+  switch (event) {
+  case GSOCK_CONNECTION: 
+  case GSOCK_LOST:
+  case GSOCK_INPUT: c = 0; break;
+  case GSOCK_OUTPUT: c = 1; break;
+     break;
+  default: return;
+  }
+
+  if (m_id[c] != -1)
+    XtRemoveInput(m_id[c]);
+
+  m_id[c] = -1;
+}
+
+unsigned long GSocket_GetEventID(GSocket *socket)
+{
+  return 0;
+}
+
+void GSocket_DoEvent(unsigned long evt_id)
+{
+}
index 7d489ecdd05767c8692d5683dd3d559fd42273b1..f1af4f0c47aaeb43dce306ba3dcd4e691e84f1c1 100644 (file)
@@ -3,22 +3,6 @@
  * Name:    gsocket.c
  * Purpose: GSocket main Unix file
  * CVSID:   $Id$
- * Log:     $Log$
- * Log:     Revision 1.2  1999/07/23 09:48:31  KB
- * Log:     Fixed stupid new bugs :-(
- * Log:
- * Log:     Revision 1.1  1999/07/22 17:51:54  GL
- * Log:     Added GSocket for Unix (only GTK for the moment)
- * Log:     Updated wxSocket to use GSocket API
- * Log:     Added a progress bar to client.cpp
- * Log:     Added CopyTo to wxMemoryOutputStream to copy the internal buffer to a specified buffer.
- * Log:     Various changes/fixes to the high-level protocols FTP/HTTP
- * Log:     Various Unicode fixes
- * Log:     Removed sckint.*
- * Log:
- * Log:     Revision 1.2  1999/07/18 15:52:34  guilhem
- * Log:     * Copyright, etc.
- * Log:
  * -------------------------------------------------------------------------
  */
 
@@ -89,11 +73,11 @@ void GSocket_destroy(GSocket *socket)
 {
   assert(socket != NULL);
 
-  _GSocket_GUI_Destroy(socket);
-
   if (socket->m_fd != -1)
     GSocket_Shutdown(socket);
 
+  _GSocket_GUI_Destroy(socket);
+
   if (socket->m_local)
     GAddress_destroy(socket->m_local);
 
index 5294e6f84b0d91446401e70047839f8450095692..380a93b10f03834ab131f009091f15a908882ee6 100644 (file)
@@ -1,3 +1,10 @@
+/* -------------------------------------------------------------------------
+ * Project: GSocket (Generic Socket) for WX
+ * Name:    gsockunx.h
+ * Purpose: GSocket Unix header
+ * CVSID:   $Id$
+ * -------------------------------------------------------------------------
+ */
 #ifndef __GSOCK_UNX_H
 #define __GSOCK_UNX_H