diff options
author | Jonny Lamb <jonny.lamb@collabora.co.uk> | 2011-04-14 13:34:21 +0100 |
---|---|---|
committer | Jonny Lamb <jonny.lamb@collabora.co.uk> | 2011-04-14 13:34:56 +0100 |
commit | ea98af03b19d1cd9366e381f5c3c2c7a1f6d59b0 (patch) | |
tree | 296f449095609e2c43a0a3d940889b537b861690 /salut | |
parent | d3b647c9e032598579449f5d64d80ae6cd96460f (diff) |
status: add connection and session properties
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
Diffstat (limited to 'salut')
-rw-r--r-- | salut/status.c | 50 | ||||
-rw-r--r-- | salut/status.h | 7 | ||||
-rw-r--r-- | salut/ytstenut.c | 2 |
3 files changed, 52 insertions, 7 deletions
diff --git a/salut/status.c b/salut/status.c index 9f68fad..3d884d4 100644 --- a/salut/status.c +++ b/salut/status.c @@ -47,7 +47,9 @@ G_DEFINE_TYPE_WITH_CODE (YtstStatus, ytst_status, G_TYPE_OBJECT, /* properties */ enum { - PROP_DISCOVERED_STATUSES = 1, + PROP_SESSION = 1, + PROP_CONNECTION, + PROP_DISCOVERED_STATUSES, PROP_DISCOVERED_SERVICES, LAST_PROPERTY }; @@ -55,6 +57,9 @@ enum /* private structure */ struct _YtstStatusPrivate { + WockySession *session; + SalutConnection *connection; + /* GHashTable<gchar*, * GHashTable<gchar*, * GHashTable<gchar*,gchar*>>> @@ -98,6 +103,12 @@ ytst_status_get_property (GObject *object, switch (property_id) { + case PROP_SESSION: + g_value_set_object (value, priv->session); + break; + case PROP_CONNECTION: + g_value_set_object (value, priv->connection); + break; case PROP_DISCOVERED_STATUSES: g_value_set_boxed (value, priv->discovered_statuses); break; @@ -116,13 +127,17 @@ ytst_status_set_property (GObject *object, const GValue *value, GParamSpec *pspec) { -#if 0 YtstStatus *self = YTST_STATUS (object); YtstStatusPrivate *priv = self->priv; -#endif switch (property_id) { + case PROP_SESSION: + priv->session = g_value_dup_object (value); + break; + case PROP_CONNECTION: + priv->connection = g_value_dup_object (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; @@ -158,6 +173,9 @@ ytst_status_dispose (GObject *object) tp_clear_pointer (&priv->discovered_statuses, g_hash_table_unref); tp_clear_pointer (&priv->discovered_services, g_hash_table_unref); + tp_clear_object (&priv->session); + tp_clear_object (&priv->connection); + if (G_OBJECT_CLASS (ytst_status_parent_class)->dispose) G_OBJECT_CLASS (ytst_status_parent_class)->dispose (object); } @@ -196,6 +214,24 @@ ytst_status_class_init (YtstStatusClass *klass) object_class->get_property = ytst_status_get_property; object_class->set_property = ytst_status_set_property; + param_spec = g_param_spec_object ( + "session", + "Session object", + "WockySession object", + WOCKY_TYPE_SESSION, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); + g_object_class_install_property (object_class, PROP_SESSION, + param_spec); + + param_spec = g_param_spec_object ( + "connection", + "Salut connection", + "SalutConnection object", + SALUT_TYPE_CONNECTION, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); + g_object_class_install_property (object_class, PROP_CONNECTION, + param_spec); + param_spec = g_param_spec_boxed ( "discovered-statuses", "Discovered Statuses", @@ -256,7 +292,11 @@ sidecar_iface_init (SalutSidecarInterface *iface) */ YtstStatus * -ytst_status_new (void) +ytst_status_new (WockySession *session, + SalutConnection *connection) { - return g_object_new (YTST_TYPE_STATUS, NULL); + return g_object_new (YTST_TYPE_STATUS, + "session", session, + "connection", connection, + NULL); } diff --git a/salut/status.h b/salut/status.h index ed1831d..f4e4ec0 100644 --- a/salut/status.h +++ b/salut/status.h @@ -25,6 +25,10 @@ #include <telepathy-glib/base-channel.h> +#include <wocky/wocky-session.h> + +#include <salut/connection.h> + G_BEGIN_DECLS typedef struct _YtstStatus YtstStatus; @@ -58,7 +62,8 @@ GType ytst_status_get_type (void); #define YTST_STATUS_GET_CLASS(obj) \ (G_TYPE_INSTANCE_GET_CLASS ((obj), YTST_TYPE_STATUS, YtstStatusClass)) -YtstStatus* ytst_status_new (void); +YtstStatus * ytst_status_new (WockySession *session, + SalutConnection *connection); G_END_DECLS diff --git a/salut/ytstenut.c b/salut/ytstenut.c index a27ccba..edb03fa 100644 --- a/salut/ytstenut.c +++ b/salut/ytstenut.c @@ -88,7 +88,7 @@ ytstenut_plugin_create_sidecar ( if (!tp_strdiff (sidecar_interface, TP_YTS_IFACE_STATUS)) { - sidecar = SALUT_SIDECAR (ytst_status_new ()); + sidecar = SALUT_SIDECAR (ytst_status_new (session, connection)); DEBUG ("created side car for: %s", TP_YTS_IFACE_STATUS); } else |