GSocket: Add function to get the currently available bytes for reading
[platform/upstream/glib.git] / gio / gsocket.h
index 9a6a85d..ae7673c 100644 (file)
@@ -76,15 +76,14 @@ struct _GSocket
 GType                  g_socket_get_type                (void) G_GNUC_CONST;
 GSocket *              g_socket_new                     (GSocketFamily            family,
                                                         GSocketType              type,
-                                                        gint                     protocol_id,
+                                                        GSocketProtocol          protocol,
                                                         GError                 **error);
 GSocket *              g_socket_new_from_fd             (gint                     fd,
                                                         GError                 **error);
 int                    g_socket_get_fd                  (GSocket                 *socket);
 GSocketFamily          g_socket_get_family              (GSocket                 *socket);
 GSocketType            g_socket_get_socket_type         (GSocket                 *socket);
-gint                   g_socket_get_protocol_id         (GSocket                 *socket);
-char *                 g_socket_get_protocol_name       (GSocket                 *socket);
+GSocketProtocol        g_socket_get_protocol            (GSocket                 *socket);
 GSocketAddress *       g_socket_get_local_address       (GSocket                 *socket,
                                                         GError                 **error);
 GSocketAddress *       g_socket_get_remote_address      (GSocket                 *socket,
@@ -92,25 +91,54 @@ GSocketAddress *       g_socket_get_remote_address      (GSocket
 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);
 void                   g_socket_set_keepalive           (GSocket                 *socket,
                                                         gboolean                 keepalive);
 gboolean               g_socket_get_keepalive           (GSocket                 *socket);
 gint                   g_socket_get_listen_backlog      (GSocket                 *socket);
 void                   g_socket_set_listen_backlog      (GSocket                 *socket,
                                                         gint                     backlog);
+guint                  g_socket_get_timeout             (GSocket                 *socket);
+void                   g_socket_set_timeout             (GSocket                 *socket,
+                                                        guint                    timeout);
+
+guint                  g_socket_get_ttl                 (GSocket                 *socket);
+void                   g_socket_set_ttl                 (GSocket                 *socket,
+                                                         guint                    ttl);
+
+gboolean               g_socket_get_broadcast           (GSocket                 *socket);
+void                   g_socket_set_broadcast           (GSocket                 *socket,
+                                                         gboolean                broadcast);
+
+gboolean               g_socket_get_multicast_loopback  (GSocket                 *socket);
+void                   g_socket_set_multicast_loopback  (GSocket                 *socket,
+                                                         gboolean                loopback);
+guint                  g_socket_get_multicast_ttl       (GSocket                 *socket);
+void                   g_socket_set_multicast_ttl       (GSocket                 *socket,
+                                                         guint                    ttl);
 gboolean               g_socket_is_connected            (GSocket                 *socket);
 gboolean               g_socket_bind                    (GSocket                 *socket,
                                                         GSocketAddress          *address,
                                                         gboolean                 allow_reuse,
                                                         GError                 **error);
+gboolean               g_socket_join_multicast_group    (GSocket                 *socket,
+                                                         GInetAddress            *group,
+                                                         gboolean                 source_specific,
+                                                         const gchar             *interface,
+                                                         GError                 **error);
+gboolean               g_socket_leave_multicast_group   (GSocket                 *socket,
+                                                         GInetAddress            *group,
+                                                         gboolean                 source_specific,
+                                                         const gchar             *interface,
+                                                         GError                 **error);
 gboolean               g_socket_connect                 (GSocket                 *socket,
                                                         GSocketAddress          *address,
+                                                        GCancellable            *cancellable,
                                                         GError                 **error);
-gboolean               g_socket_check_pending_error     (GSocket                 *socket,
+gboolean               g_socket_check_connect_result    (GSocket                 *socket,
                                                         GError                 **error);
+
+gssize                 g_socket_get_available_bytes     (GSocket                 *socket);
+
 GIOCondition           g_socket_condition_check         (GSocket                 *socket,
                                                         GIOCondition             condition);
 gboolean               g_socket_condition_wait          (GSocket                 *socket,
@@ -118,31 +146,31 @@ gboolean               g_socket_condition_wait          (GSocket
                                                         GCancellable            *cancellable,
                                                         GError                 **error);
 GSocket *              g_socket_accept                  (GSocket                 *socket,
+                                                        GCancellable            *cancellable,
                                                         GError                 **error);
 gboolean               g_socket_listen                  (GSocket                 *socket,
                                                         GError                 **error);
 gssize                 g_socket_receive                 (GSocket                 *socket,
                                                         gchar                   *buffer,
                                                         gsize                    size,
+                                                        GCancellable            *cancellable,
                                                         GError                 **error);
 gssize                 g_socket_receive_from            (GSocket                 *socket,
                                                         GSocketAddress         **address,
                                                         gchar                   *buffer,
                                                         gsize                    size,
+                                                        GCancellable            *cancellable,
                                                         GError                 **error);
 gssize                 g_socket_send                    (GSocket                 *socket,
                                                         const gchar             *buffer,
                                                         gsize                    size,
+                                                        GCancellable            *cancellable,
                                                         GError                 **error);
 gssize                 g_socket_send_to                 (GSocket                 *socket,
                                                         GSocketAddress          *address,
                                                         const gchar             *buffer,
                                                         gsize                    size,
-                                                        GError                 **error);
-GSocketControlMessage *g_socket_receive_control_message (GSocket                 *socket,
-                                                        GError                 **error);
-gboolean               g_socket_send_control_message    (GSocket                 *socket,
-                                                        GSocketControlMessage   *message,
+                                                        GCancellable            *cancellable,
                                                         GError                 **error);
 gssize                 g_socket_receive_message         (GSocket                 *socket,
                                                         GSocketAddress         **address,
@@ -151,6 +179,7 @@ gssize                 g_socket_receive_message         (GSocket
                                                         GSocketControlMessage ***messages,
                                                         gint                    *num_messages,
                                                         gint                    *flags,
+                                                        GCancellable            *cancellable,
                                                         GError                 **error);
 gssize                 g_socket_send_message            (GSocket                 *socket,
                                                         GSocketAddress          *address,
@@ -159,15 +188,34 @@ gssize                 g_socket_send_message            (GSocket
                                                         GSocketControlMessage  **messages,
                                                         gint                     num_messages,
                                                         gint                     flags,
+                                                        GCancellable            *cancellable,
                                                         GError                 **error);
 gboolean               g_socket_close                   (GSocket                 *socket,
                                                         GError                 **error);
+gboolean               g_socket_shutdown                (GSocket                 *socket,
+                                                        gboolean                 shutdown_read,
+                                                        gboolean                 shutdown_write,
+                                                        GError                 **error);
 gboolean               g_socket_is_closed               (GSocket                 *socket);
 GSource *              g_socket_create_source           (GSocket                 *socket,
                                                         GIOCondition             condition,
                                                         GCancellable            *cancellable);
+gboolean               g_socket_speaks_ipv4             (GSocket                 *socket);
+GCredentials          *g_socket_get_credentials         (GSocket                 *socket,
+                                                         GError                 **error);
 
-gint                  g_socket_protocol_id_lookup_by_name (const char            *protocol_name);
+gssize                 g_socket_receive_with_blocking   (GSocket                 *socket,
+                                                        gchar                   *buffer,
+                                                        gsize                    size,
+                                                        gboolean                 blocking,
+                                                        GCancellable            *cancellable,
+                                                        GError                 **error);
+gssize                 g_socket_send_with_blocking      (GSocket                 *socket,
+                                                        const gchar             *buffer,
+                                                        gsize                    size,
+                                                        gboolean                 blocking,
+                                                        GCancellable            *cancellable,
+                                                        GError                 **error);
 
 G_END_DECLS