[empathy] notify-manager: fetch capabilities of the notification server
- From: Guillaume Desmottes <gdesmott src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [empathy] notify-manager: fetch capabilities of the notification server
- Date: Fri, 13 Nov 2009 11:39:34 +0000 (UTC)
commit f349f9df875a373dd4070a1e7f5d5a81cc02b230
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date: Thu Nov 12 12:11:55 2009 +0000
notify-manager: fetch capabilities of the notification server
libempathy-gtk/empathy-notify-manager.c | 24 +++++++++++++++++++++++-
1 files changed, 23 insertions(+), 1 deletions(-)
---
diff --git a/libempathy-gtk/empathy-notify-manager.c b/libempathy-gtk/empathy-notify-manager.c
index 6d2648f..ae1894a 100644
--- a/libempathy-gtk/empathy-notify-manager.c
+++ b/libempathy-gtk/empathy-notify-manager.c
@@ -34,8 +34,10 @@
typedef struct
{
- gboolean dispose_has_run;
+ /* owned (gchar *) => TRUE */
+ GHashTable *capabilities;
+ gboolean dispose_has_run;
} EmpathyNotifyManagerPriv;
G_DEFINE_TYPE (EmpathyNotifyManager, empathy_notify_manager, G_TYPE_OBJECT);
@@ -49,6 +51,7 @@ notify_manager_constructor (GType type,
{
GObject *retval;
EmpathyNotifyManagerPriv *priv;
+ GList *list, *l;
if (notify_manager != NULL)
return g_object_ref (notify_manager);
@@ -61,6 +64,18 @@ notify_manager_constructor (GType type,
priv = GET_PRIV (notify_manager);
+ /* fetch capabilities */
+ list = notify_get_server_caps ();
+ for (l = list; l != NULL; l = g_list_next (l))
+ {
+ gchar *capa = l->data;
+
+ DEBUG ("add capability: %s", capa);
+ /* owernship of the string is transfered to the hash table */
+ g_hash_table_insert (priv->capabilities, capa, GUINT_TO_POINTER (TRUE));
+ }
+ g_list_free (list);
+
return retval;
}
@@ -80,6 +95,10 @@ notify_manager_dispose (GObject *object)
static void
notify_manager_finalize (GObject *object)
{
+ EmpathyNotifyManagerPriv *priv = GET_PRIV (object);
+
+ g_hash_table_destroy (priv->capabilities);
+
G_OBJECT_CLASS (empathy_notify_manager_parent_class)->finalize (object);
}
@@ -102,6 +121,9 @@ empathy_notify_manager_init (EmpathyNotifyManager *self)
EMPATHY_TYPE_NOTIFY_MANAGER, EmpathyNotifyManagerPriv);
self->priv = priv;
+
+ priv->capabilities = g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
+ NULL);
}
EmpathyNotifyManager *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]