Some more socket stuff
[cascardo/gnio.git] / gnio / gsocket.h
index 6b663d4..63295e1 100644 (file)
@@ -28,6 +28,7 @@
 #include <gio/gio.h>
 
 #include "ginetaddress.h"
+#include "gsocketaddress.h"
 
 G_BEGIN_DECLS
 
@@ -38,12 +39,15 @@ G_BEGIN_DECLS
 #define G_IS_SOCKET_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_SOCKET))
 #define G_SOCKET_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_SOCKET, GSocket))
 
-typedef struct _GSocket        GSocket;
-typedef struct _GSocketClass   GSocketClass;
+typedef struct _GSocket          GSocket;
+typedef struct _GSocketClass     GSocketClass;
+typedef struct _GSocketPrivate   GSocketPrivate;
 
 struct _GSocket
 {
   GObject parent;
+
+  GSocketPrivate *priv;
 };
 
 struct _GSocketClass
@@ -51,7 +55,87 @@ struct _GSocketClass
   GObjectClass parent_class;
 };
 
-GType          g_socket_get_type (void) G_GNUC_CONST;
+GType            g_socket_get_type         (void) G_GNUC_CONST;
+
+GSocket *        g_socket_new              (gint domain, gint type, gint protocol);
+
+GSocket *        g_socket_new_from_fd      (gint fd);
+
+GSocketAddress * g_socket_get_peer_address (GSocket *socket, GError **error);
+
+void             g_socket_set_blocking     (GSocket  *socket,
+                                            gboolean  blocking);
+
+gboolean         g_socket_get_blocking     (GSocket  *socket);
+
+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,
+                                            gint 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);
 
 G_END_DECLS