summaryrefslogtreecommitdiff
path: root/gio
diff options
context:
space:
mode:
Diffstat (limited to 'gio')
-rw-r--r--gio/gsocketclient.c101
-rw-r--r--gio/gsocketclient.h13
2 files changed, 100 insertions, 14 deletions
diff --git a/gio/gsocketclient.c b/gio/gsocketclient.c
index bfaab29..ea2d381 100644
--- a/gio/gsocketclient.c
+++ b/gio/gsocketclient.c
@@ -162,25 +162,98 @@ g_socket_client_set_property (GObject *object,
switch (prop_id)
{
- case PROP_FAMILY:
- client->priv->family = g_value_get_enum (value);
- break;
+ case PROP_FAMILY:
+ g_socket_client_set_family (client, g_value_get_enum (value));
+ break;
- case PROP_TYPE:
- client->priv->type = g_value_get_enum (value);
- break;
+ case PROP_TYPE:
+ g_socket_client_set_socket_type (client, g_value_get_enum (value));
+ break;
- case PROP_PROTOCOL:
- client->priv->protocol = g_value_dup_string (value);
- break;
+ case PROP_PROTOCOL:
+ g_socket_client_set_protocol (client, g_value_get_string (value));
+ break;
- case PROP_LOCAL_ADDRESS:
- client->priv->local_address = g_value_dup_object (value);
- break;
+ case PROP_LOCAL_ADDRESS:
+ g_socket_client_set_local_address (client, g_value_get_object (value));
+ break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
+}
+
+GSocketFamily
+g_socket_client_get_family (GSocketClient *client)
+{
+ return client->priv->family;
+}
+
+void
+g_socket_client_set_family (GSocketClient *client,
+ GSocketFamily family)
+{
+ if (client->priv->family == family)
+ return;
+
+ client->priv->family = family;
+ g_object_notify (G_OBJECT (client), "family");
+}
+
+GSocketType
+g_socket_client_get_socket_type (GSocketClient *client)
+{
+ return client->priv->type;
+}
+
+void
+g_socket_client_set_socket_type (GSocketClient *client,
+ GSocketType type)
+{
+ if (client->priv->type == type)
+ return;
+
+ client->priv->type = type;
+ g_object_notify (G_OBJECT (client), "type");
+}
+
+const char *
+g_socket_client_get_protocol (GSocketClient *client)
+{
+ return client->priv->protocol;
+}
+
+void
+g_socket_client_set_protocol (GSocketClient *client,
+ const char *protocol)
+{
+ if (g_strcmp0 (client->priv->protocol, protocol) == 0)
+ return;
+
+ g_free (client->priv->protocol);
+ client->priv->protocol = g_strdup (protocol);
+ g_object_notify (G_OBJECT (client), "protocol");
+}
+
+GSocketAddress *
+g_socket_client_get_local_address (GSocketClient *client)
+{
+ return client->priv->local_address;
+}
+
+void
+g_socket_client_set_local_address (GSocketClient *client,
+ GSocketAddress *address)
+{
+ if (address)
+ g_object_ref (address);
+
+ if (client->priv->local_address)
+ {
+ g_object_unref (client->priv->local_address);
}
+ client->priv->local_address = address;
+ g_object_notify (G_OBJECT (client), "local-address");
}
static void
diff --git a/gio/gsocketclient.h b/gio/gsocketclient.h
index 5549db4..aba1132 100644
--- a/gio/gsocketclient.h
+++ b/gio/gsocketclient.h
@@ -56,6 +56,19 @@ GType g_socket_client_get_type (void);
GSocketClient *g_socket_client_new (void);
+GSocketFamily g_socket_client_get_family (GSocketClient *client);
+void g_socket_client_set_family (GSocketClient *client,
+ GSocketFamily family);
+GSocketType g_socket_client_get_socket_type (GSocketClient *client);
+void g_socket_client_set_socket_type (GSocketClient *client,
+ GSocketType type);
+const char *g_socket_client_get_protocol (GSocketClient *client);
+void g_socket_client_set_protocol (GSocketClient *client,
+ const char *protocol);
+GSocketAddress *g_socket_client_get_local_address (GSocketClient *client);
+void g_socket_client_set_local_address (GSocketClient *client,
+ GSocketAddress *address);
+
GSocketConnection * g_socket_client_connect (GSocketClient *client,
GSocketConnectable *connectable,
GCancellable *cancellable,