summaryrefslogtreecommitdiff
path: root/salut
diff options
context:
space:
mode:
authorJonny Lamb <jonny.lamb@collabora.co.uk>2011-04-14 13:34:21 +0100
committerJonny Lamb <jonny.lamb@collabora.co.uk>2011-04-14 13:34:56 +0100
commitea98af03b19d1cd9366e381f5c3c2c7a1f6d59b0 (patch)
tree296f449095609e2c43a0a3d940889b537b861690 /salut
parentd3b647c9e032598579449f5d64d80ae6cd96460f (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.c50
-rw-r--r--salut/status.h7
-rw-r--r--salut/ytstenut.c2
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