#include <glib-object.h>
#include <gio/gio.h>
-#include "ginetaddress.h"
-#include "gsocketaddress.h"
+#include <gnio/gsocketaddress.h>
G_BEGIN_DECLS
GObjectClass parent_class;
};
-GType g_socket_get_type (void) G_GNUC_CONST;
-
-GSocket * g_socket_new (void);
-
-GSocket * g_socket_new_from_fd (gint fd);
-
-void g_socket_set_blocking (GSocket *socket,
- gboolean blocking);
-
-gboolean g_socket_bind (GSocket *socket,
- GSocketAddress *address,
- GError **error);
-
-gboolean g_socket_connect (GSocket *socket,
- GSocketAddress *address,
- GCancellable *cancellable,
- GError **error);
-
-void g_socket_connect_async (GSocket *socket,
- GSocketAddress *address,
- GCancellable *cancellable,
- GAsyncReadyCallback *callback,
- gpointer user_data);
-
-gboolean g_socket_connect_finish (GSocket *socket,
- GAsyncResult *result,
- GError **error);
-
-GSocket * g_socket_accept (GSocket *socket,
- GCancellable *cancellable,
- GError **error);
-
-void g_socket_accept_async (GSocket *socket,
- GCancellable *cancellable,
- GAsyncReadyCallback *callback,
- gpointer user_data);
-
-GSocket * g_socket_accept_finish (GSocket *socket,
- GAsyncResult *result,
- GError **error);
-
-void g_socket_listen (GSocket *socket,
- int backlog);
-
-gssize g_socket_receive (GSocket *socket,
- gchar *buffer,
- gsize size,
- GCancellable *cancellable,
- GError **error);
-
-void g_socket_receive_async (GSocket *socket,
- gchar *buffer,
- gsize size,
- GCancellable *cancellable,
- GAsyncReadyCallback *callback,
- gpointer user_data);
-
-gssize g_socket_receive_finish (GSocket *socket,
- GAsyncResult *result,
- GError **error);
-
-gssize g_socket_send (GSocket *socket,
- gchar *buffer,
- gsize size,
- GCancellable *cancellable,
- GError **error);
-
-void g_socket_send_async (GSocket *socket,
- gchar *buffer,
- gsize size,
- GCancellable *cancellable,
- GAsyncReadyCallback *callback,
- gpointer user_data);
-
-gssize g_socket_send_finish (GSocket *socket,
- GAsyncResult *result,
- GError **error);
+typedef enum
+{
+ G_SOCKET_DOMAIN_INET,
+ G_SOCKET_DOMAIN_INET6,
+ G_SOCKET_DOMAIN_UNIX
+} GSocketDomain;
+
+typedef enum
+{
+ G_SOCKET_TYPE_STREAM,
+ G_SOCKET_TYPE_DATAGRAM,
+ G_SOCKET_TYPE_SEQPACKET
+} GSocketType;
+
+GType g_socket_get_type (void) G_GNUC_CONST;
+
+GSocket * g_socket_new (GSocketDomain domain,
+ GSocketType type,
+ const gchar *protocol,
+ GError **error);
+
+GSocket * g_socket_new_from_fd (gint fd);
+
+GSocketAddress * g_socket_get_local_address (GSocket *socket, GError **error);
+
+GSocketAddress * g_socket_get_remote_address (GSocket *socket, GError **error);
+
+void g_socket_set_blocking (GSocket *socket,
+ gboolean blocking);
+
+gboolean g_socket_get_blocking (GSocket *socket);
+
+void g_socket_set_reuse_address (GSocket *socket,
+ gboolean reuse);
+
+gboolean g_socket_get_reuse_address (GSocket *socket);
+
+gboolean g_socket_bind (GSocket *socket,
+ GSocketAddress *address,
+ GError **error);
+
+gboolean g_socket_connect (GSocket *socket,
+ GSocketAddress *address,
+ GError **error);
+
+GSocket * g_socket_accept (GSocket *socket,
+ GError **error);
+
+gboolean g_socket_listen (GSocket *socket,
+ GError **error);
+
+gssize g_socket_receive (GSocket *socket,
+ gchar *buffer,
+ gsize size,
+ GError **error);
+
+gssize g_socket_send (GSocket *socket,
+ const gchar *buffer,
+ gsize size,
+ GError **error);
+
+void g_socket_close (GSocket *socket);
+
+GSource * g_socket_create_source (GSocket *socket,
+ GIOCondition condition,
+ GCancellable *cancellable);
G_END_DECLS