Starting the NetworkStreams. HTTP to www.google.com works
[cascardo/gnio.git] / gnio / gsocket.h
index 7a0a568..2a50583 100644 (file)
@@ -27,8 +27,7 @@
 #include <glib-object.h>
 #include <gio/gio.h>
 
-#include "ginetaddress.h"
-#include "gsocketaddress.h"
+#include <gnio/gsocketaddress.h>
 
 G_BEGIN_DECLS
 
@@ -55,83 +54,72 @@ struct _GSocketClass
   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