* 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
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);
+ 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();
/* 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 */
/* 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
CONNECTION -> GSocket_Accept()
*/
void GSocket_SetFallback(GSocket *socket, GSocketEventFlags event,
- GSocketFallback fallback, char *cdata);
+ GSocketFallback fallback, char *cdata);
/*
UnsetFallback will disables all fallbacks specified by "event".
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
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,