#ifndef __GSOCKET_H
#define __GSOCKET_H
+#include "wx/setup.h"
+
+#if wxUSE_SOCKETS
+
#include <sys/types.h>
#if !defined(__cplusplus)
-
typedef int bool;
-
#endif
#ifndef TRUE
GSOCK_INVADDR,
GSOCK_INVSOCK,
GSOCK_NOHOST,
- GSOCK_INVPORT
+ GSOCK_INVPORT,
+ GSOCK_TRYAGAIN,
+ GSOCK_MEMERR
} GSocketError;
typedef enum {
typedef int GSocketEventFlags;
-typedef void (*GSocketFallback)(GSocket *socket, GSocketEvent event,
+typedef void (*GSocketCallback)(GSocket *socket, GSocketEvent event,
char *cdata);
#ifdef __cplusplus
extern "C" {
#endif
+/* Global initialisers */
+
+/* GSocket_Init() must be called at the beginning */
+bool GSocket_Init();
+/* GSocket_Cleanup() must be called at the ending */
+void GSocket_Cleanup();
+
/* Constructors / Destructors */
GSocket *GSocket_new();
/* Server specific parts */
/*
- GSocket_SetServer() setup the socket as a server. It uses the "Local" field
+ GSocket_SetServer() setups the socket as a server. It uses the "Local" field
of GSocket. "Local" must be set by GSocket_SetLocal() before
GSocket_SetServer() is called. In the other case, it returns GSOCK_INVADDR.
*/
int size);
bool GSocket_DataAvailable(GSocket *socket);
-/* Flags */
+/* Flags/Parameters */
+
+/*
+ GSocket_SetTimeout() sets the timeout for reading and writing IO call. Time
+ is expressed in milliseconds.
+ */
+void GSocket_SetTimeout(GSocket *socket, unsigned long millisec);
/*
GSocket_SetBlocking() puts the socket in non-blocking mode. This is useful
if we don't want to wait.
*/
-void GSocket_SetBlocking(GSocket *socket, bool block);
+void GSocket_SetNonBlocking(GSocket *socket, bool non_block);
/*
GSocket_GetError() returns the last error occured on the socket stream.
Server socket -> a client request a connection
LOST: the connection is lost
- SetFallback accepts a combination of these flags so a same callback can
+ SetCallback accepts a combination of these flags so a same callback can
receive different events.
An event is generated only once and its state is reseted when the relative
For example: INPUT -> GSocket_Read()
CONNECTION -> GSocket_Accept()
*/
-void GSocket_SetFallback(GSocket *socket, GSocketEventFlags event,
- GSocketFallback fallback, char *cdata);
+void GSocket_SetCallback(GSocket *socket, GSocketEventFlags event,
+ GSocketCallback fallback, char *cdata);
/*
- UnsetFallback will disables all fallbacks specified by "event".
+ UnsetCallback will disables all fallbacks specified by "event".
NOTE: event may be a combination of flags
*/
-void GSocket_UnsetFallback(GSocket *socket, GSocketEventFlags event);
+void GSocket_UnsetCallback(GSocket *socket, GSocketEventFlags event);
/* GAddress */
#ifdef __cplusplus
};
+#endif /* __cplusplus */
+
+
#endif
+ /* wxUSE_SOCKETS */
#endif
- /* __GSOCKET_H */
+ /* __GSOCKET_H */