]> git.0d.be Git - empathy.git/commitdiff
add empathy_individual_manager_unprepare_async()
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Thu, 19 Jul 2012 08:40:00 +0000 (10:40 +0200)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Wed, 12 Sep 2012 09:49:25 +0000 (11:49 +0200)
https://bugzilla.gnome.org/show_bug.cgi?id=660128

libempathy/empathy-individual-manager.c
libempathy/empathy-individual-manager.h

index 1132f581681f188a37b387fd5fa7d410f3e26c0a..97be8b8a71eaa790515c85cae1608e2c2f61f03f 100644 (file)
@@ -440,6 +440,7 @@ individual_manager_dispose (GObject *object)
   EmpathyIndividualManagerPriv *priv = GET_PRIV (object);
 
   g_hash_table_unref (priv->individuals);
   EmpathyIndividualManagerPriv *priv = GET_PRIV (object);
 
   g_hash_table_unref (priv->individuals);
+
   tp_clear_object (&priv->aggregator);
 
   G_OBJECT_CLASS (empathy_individual_manager_parent_class)->dispose (object);
   tp_clear_object (&priv->aggregator);
 
   G_OBJECT_CLASS (empathy_individual_manager_parent_class)->dispose (object);
@@ -908,3 +909,50 @@ empathy_individual_manager_get_top_individuals (EmpathyIndividualManager *self)
 
   return priv->top_individuals;
 }
 
   return priv->top_individuals;
 }
+
+static void
+unprepare_cb (GObject *source,
+    GAsyncResult *result,
+    gpointer user_data)
+{
+  GError *error = NULL;
+  GSimpleAsyncResult *my_result = user_data;
+
+  folks_individual_aggregator_unprepare_finish (
+      FOLKS_INDIVIDUAL_AGGREGATOR (source), result, &error);
+
+  if (error != NULL)
+    {
+      DEBUG ("Failed to unprepare the aggregator: %s", error->message);
+      g_simple_async_result_take_error (my_result, error);
+    }
+
+  g_simple_async_result_complete (my_result);
+  g_object_unref (my_result);
+}
+
+void
+empathy_individual_manager_unprepare_async (
+    EmpathyIndividualManager *self,
+    GAsyncReadyCallback callback,
+    gpointer user_data)
+{
+  EmpathyIndividualManagerPriv *priv = GET_PRIV (self);
+  GSimpleAsyncResult *result;
+
+  result = g_simple_async_result_new (G_OBJECT (self), callback, user_data,
+      empathy_individual_manager_unprepare_async);
+
+  folks_individual_aggregator_unprepare (priv->aggregator, unprepare_cb,
+      result);
+}
+
+gboolean
+empathy_individual_manager_unprepare_finish (
+    EmpathyIndividualManager *self,
+    GAsyncResult *result,
+    GError **error)
+{
+  empathy_implement_finish_void (self,
+      empathy_individual_manager_unprepare_async)
+}
index d2a5fe90b68ccdedad16913a76ada45c109c41a3..fc27043734ba615a84059e0e553386b5ca28ddd6 100644 (file)
@@ -89,5 +89,15 @@ gboolean empathy_individual_manager_get_contacts_loaded (
 GList * empathy_individual_manager_get_top_individuals (
     EmpathyIndividualManager *self);
 
 GList * empathy_individual_manager_get_top_individuals (
     EmpathyIndividualManager *self);
 
+void empathy_individual_manager_unprepare_async (
+    EmpathyIndividualManager *self,
+    GAsyncReadyCallback callback,
+    gpointer user_data);
+
+gboolean empathy_individual_manager_unprepare_finish (
+    EmpathyIndividualManager *self,
+    GAsyncResult *result,
+    GError **error);
+
 G_END_DECLS
 #endif /* __EMPATHY_INDIVIDUAL_MANAGER_H__ */
 G_END_DECLS
 #endif /* __EMPATHY_INDIVIDUAL_MANAGER_H__ */