]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/gsocket.h
*** empty log message ***
[wxWidgets.git] / include / wx / gsocket.h
index fce739e20e225f26e237a8863bdc64bffab1cfb3..1c66aa45847a8225f702ad100f47998aad97394a 100644 (file)
@@ -8,12 +8,15 @@
 #ifndef __GSOCKET_H
 #define __GSOCKET_H
 
 #ifndef __GSOCKET_H
 #define __GSOCKET_H
 
+#include "wx/setup.h"
+
+#if wxUSE_SOCKETS
+
+#include <stddef.h>
 #include <sys/types.h>
 
 #if !defined(__cplusplus)
 #include <sys/types.h>
 
 #if !defined(__cplusplus)
-
 typedef int bool;
 typedef int bool;
-
 #endif
 
 #ifndef TRUE
 #endif
 
 #ifndef TRUE
@@ -46,7 +49,10 @@ typedef enum {
   GSOCK_INVADDR,
   GSOCK_INVSOCK,
   GSOCK_NOHOST,
   GSOCK_INVADDR,
   GSOCK_INVSOCK,
   GSOCK_NOHOST,
-  GSOCK_INVPORT
+  GSOCK_INVPORT,
+  GSOCK_WOULDBLOCK,
+  GSOCK_TIMEDOUT,
+  GSOCK_MEMERR
 } GSocketError;
 
 typedef enum {
 } GSocketError;
 
 typedef enum {
@@ -61,18 +67,25 @@ enum {
   GSOCK_INPUT_FLAG = 1 << GSOCK_INPUT,
   GSOCK_OUTPUT_FLAG = 1 << GSOCK_OUTPUT,
   GSOCK_CONNECTION_FLAG = 1 << GSOCK_CONNECTION,
   GSOCK_INPUT_FLAG = 1 << GSOCK_INPUT,
   GSOCK_OUTPUT_FLAG = 1 << GSOCK_OUTPUT,
   GSOCK_CONNECTION_FLAG = 1 << GSOCK_CONNECTION,
-  GSOCK_LOST_FLAG = 1 << GSOCK_LOST,
+  GSOCK_LOST_FLAG = 1 << GSOCK_LOST
 };
 
 typedef int GSocketEventFlags;
 
 };
 
 typedef int GSocketEventFlags;
 
-typedef void (*GSocketFallback)(GSocket *socket, GSocketEvent event,
-                               char *cdata);
+typedef void (*GSocketCallback)(GSocket *socket, GSocketEvent event,
+                                char *cdata);
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 
 #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();
 /* Constructors / Destructors */
 
 GSocket *GSocket_new();
@@ -95,7 +108,7 @@ GSocketError GSocket_SetNonOriented(GSocket *socket);
 /* Server specific parts */
 
 /*
 /* 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.
 */
   of GSocket. "Local" must be set by GSocket_SetLocal() before
   GSocket_SetServer() is called. In the other case, it returns GSOCK_INVADDR.
 */
@@ -118,22 +131,28 @@ GSocketError GSocket_Connect(GSocket *socket, GSocketStream stream);
 /* Generic IO */
 
 /* Like recv(), send(), ... */
 /* Generic IO */
 
 /* Like recv(), send(), ... */
-/* 
+/*
    NOTE: In case we read from a non-oriented connection, the incoming (outgoing)
    NOTE: In case we read from a non-oriented connection, the incoming (outgoing)
-   connection address is stored in the "Local" ("Peer") field. 
+   connection address is stored in the "Local" ("Peer") field.
 */
 int GSocket_Read(GSocket *socket, char *buffer, int size);
 int GSocket_Write(GSocket *socket, const char *buffer,
 */
 int GSocket_Read(GSocket *socket, char *buffer, int size);
 int GSocket_Write(GSocket *socket, const char *buffer,
-                 int size);
+                  int size);
 bool GSocket_DataAvailable(GSocket *socket);
 
 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.
 */
 
 /*
   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.
 
 /*
   GSocket_GetError() returns the last error occured on the socket stream.
@@ -143,18 +162,18 @@ GSocketError GSocket_GetError(GSocket *socket);
 
 /* Callbacks */
 
 
 /* Callbacks */
 
-/* 
+/*
    Only one fallback is possible for each event (INPUT, OUTPUT, CONNECTION, LOST)
    Only one fallback is possible for each event (INPUT, OUTPUT, CONNECTION, LOST)
-   INPUT: The function is called when there is at least a byte in the 
+   INPUT: The function is called when there is at least a byte in the
           input buffer
    OUTPUT: The function is called when the system is sure the next write call
            will not block
    CONNECTION: Two cases is possible:
              Client socket -> the connection is established
           input buffer
    OUTPUT: The function is called when the system is sure the next write call
            will not block
    CONNECTION: Two cases is possible:
              Client socket -> the connection is established
-            Server socket -> a client request a connection
+             Server socket -> a client request a connection
    LOST: the connection is lost
 
    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
    receive different events.
 
    An event is generated only once and its state is reseted when the relative
@@ -162,14 +181,14 @@ GSocketError GSocket_GetError(GSocket *socket);
    For example: INPUT -> GSocket_Read()
                 CONNECTION -> GSocket_Accept()
 */
    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
 */
   NOTE: event may be a combination of flags
 */
-void GSocket_UnsetFallback(GSocket *socket, GSocketEventFlags event);
+void GSocket_UnsetCallback(GSocket *socket, GSocketEventFlags event);
 
 /* GAddress */
 
 
 /* GAddress */
 
@@ -180,7 +199,7 @@ void GAddress_destroy(GAddress *address);
 void GAddress_SetFamily(GAddress *address, GAddressType type);
 GAddressType GAddress_GetFamily(GAddress *address);
 
 void GAddress_SetFamily(GAddress *address, GAddressType type);
 GAddressType GAddress_GetFamily(GAddress *address);
 
-/* 
+/*
    The use of any of the next functions will set the address family to the adapted
    one. For example if you use GAddress_INET_SetHostName, address family will be AF_INET
    implicitely
    The use of any of the next functions will set the address family to the adapted
    one. For example if you use GAddress_INET_SetHostName, address family will be AF_INET
    implicitely
@@ -189,7 +208,8 @@ GAddressType GAddress_GetFamily(GAddress *address);
 GSocketError GAddress_INET_SetHostName(GAddress *address, const char *hostname);
 GSocketError GAddress_INET_SetHostAddress(GAddress *address,
                                           unsigned long hostaddr);
 GSocketError GAddress_INET_SetHostName(GAddress *address, const char *hostname);
 GSocketError GAddress_INET_SetHostAddress(GAddress *address,
                                           unsigned long hostaddr);
-GSocketError GAddress_INET_SetPortName(GAddress *address, const char *port);
+GSocketError GAddress_INET_SetPortName(GAddress *address, const char *port,
+                                       const char *protocol);
 GSocketError GAddress_INET_SetPort(GAddress *address, unsigned short port);
 
 GSocketError GAddress_INET_GetHostName(GAddress *address, char *hostname,
 GSocketError GAddress_INET_SetPort(GAddress *address, unsigned short port);
 
 GSocketError GAddress_INET_GetHostName(GAddress *address, char *hostname,
@@ -214,7 +234,11 @@ void GSocket_DoEvent(unsigned long evt_id);
 
 #ifdef __cplusplus
 };
 
 #ifdef __cplusplus
 };
+#endif /* __cplusplus */
+
+
 #endif
 #endif
+    /* wxUSE_SOCKETS */
 
 #endif
 
 #endif
- /* __GSOCKET_H */
   /* __GSOCKET_H */