#ifndef __GSOCKET_STANDALONE__
#include "wx/setup.h"
+
+/* kludge for GTK.. gsockgtk.c craps out miserably if we include
+ defs.h ... no idea how other files get away with it.. */
+
+#if !defined( __WXMSW__ ) && !defined( WXDLLIMPEXP_NET )
+#define WXDLLIMPEXP_NET
+#endif
+
#endif
#if wxUSE_SOCKETS || defined(__GSOCKET_STANDALONE__)
#include <stddef.h>
-#ifndef __WXMAC__
+
+/*
+ Including sys/types.h under cygwin results in the warnings about "fd_set
+ having been defined in sys/types.h" when winsock.h is included later and
+ doesn't seem to be necessary anyhow. It's not needed under Mac neither.
+ */
+#if !defined(__WXMAC__) && !defined(__CYGWIN__) && !defined(__WXWINCE__)
#include <sys/types.h>
#endif
+#ifdef __WXWINCE__
+#include <stdlib.h>
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
char *cdata);
+/* Functions tables for internal use by GSocket code: */
+
+#ifndef __WINDOWS__
+struct GSocketBaseFunctionsTable
+{
+ void (*Detected_Read)(GSocket *socket);
+ void (*Detected_Write)(GSocket *socket);
+};
+#endif
+
+struct GSocketGUIFunctionsTable
+{
+ int (*GUI_Init)(void);
+ void (*GUI_Cleanup)(void);
+ int (*GUI_Init_Socket)(GSocket *socket);
+ void (*GUI_Destroy_Socket)(GSocket *socket);
+#ifndef __WINDOWS__
+ void (*Install_Callback)(GSocket *socket, GSocketEvent event);
+ void (*Uninstall_Callback)(GSocket *socket, GSocketEvent event);
+#endif
+ void (*Enable_Events)(GSocket *socket);
+ void (*Disable_Events)(GSocket *socket);
+};
+
+
/* Global initializers */
+/* Sets GUI functions callbacks. Must be called *before* GSocket_Init
+ if the app uses async sockets. */
+void GSocket_SetGUIFunctions(struct GSocketGUIFunctionsTable *guifunc);
+
/* GSocket_Init() must be called at the beginning */
int GSocket_Init(void);
* operations do not clear this back to GSOCK_NOERROR, so use it only
* after an error.
*/
-GSocketError GSocket_GetError(GSocket *socket);
+GSocketError WXDLLIMPEXP_NET GSocket_GetError(GSocket *socket);
/* Callbacks */
GSocketError GAddress_UNIX_GetPath(GAddress *address, char *path, size_t sbuf);
#ifdef __cplusplus
-};
+}
#endif /* __cplusplus */