]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/gsocket.h
converted to 16 colors
[wxWidgets.git] / include / wx / gsocket.h
index 096cff1666980096602bb59640ec7b6e474fa11b..7190696fd081ba9b4b623d10e0005f51853533fe 100644 (file)
@@ -3,30 +3,19 @@
  * 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
 #define __GSOCKET_H
 
+#include "wx/setup.h"
+
+#if wxUSE_SOCKETS
+
 #include <sys/types.h>
 
 #if !defined(__cplusplus)
-
 typedef int bool;
-
 #endif
 
 #ifndef TRUE
@@ -59,7 +48,9 @@ typedef enum {
   GSOCK_INVADDR,
   GSOCK_INVSOCK,
   GSOCK_NOHOST,
-  GSOCK_INVPORT
+  GSOCK_INVPORT,
+  GSOCK_TRYAGAIN,
+  GSOCK_MEMERR
 } GSocketError;
 
 typedef enum {
@@ -74,18 +65,25 @@ enum {
   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 void (*GSocketFallback)(GSocket *socket, GSocketEvent event,
-                               char *cdata);
+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();
@@ -108,7 +106,7 @@ GSocketError GSocket_SetNonOriented(GSocket *socket);
 /* 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.
 */
@@ -131,22 +129,28 @@ GSocketError GSocket_Connect(GSocket *socket, GSocketStream stream);
 /* Generic IO */
 
 /* Like recv(), send(), ... */
-/* 
+/*
    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 size);
+                  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.
@@ -156,18 +160,18 @@ GSocketError GSocket_GetError(GSocket *socket);
 
 /* Callbacks */
 
-/* 
+/*
    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
-            Server socket -> a client request a connection
+             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
@@ -175,14 +179,14 @@ GSocketError GSocket_GetError(GSocket *socket);
    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 */
 
@@ -193,7 +197,7 @@ void GAddress_destroy(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
@@ -202,7 +206,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_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,
@@ -227,7 +232,11 @@ void GSocket_DoEvent(unsigned long evt_id);
 
 #ifdef __cplusplus
 };
+#endif /* __cplusplus */
+
+
 #endif
+    /* wxUSE_SOCKETS */
 
 #endif
- /* __GSOCKET_H */
   /* __GSOCKET_H */