[telepathy-glib/master] account-manager: add _enable_restart

Jonny Lamb jonny.lamb at collabora.co.uk
Mon Sep 28 03:57:25 PDT 2009


Signed-off-by: Jonny Lamb <jonny.lamb at collabora.co.uk>
---
 docs/reference/telepathy-glib-sections.txt |    1 +
 telepathy-glib/account-manager.c           |   26 ++++++++++++++++++++------
 telepathy-glib/account-manager.h           |    2 ++
 3 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/docs/reference/telepathy-glib-sections.txt b/docs/reference/telepathy-glib-sections.txt
index 6cf361c..4990c88 100644
--- a/docs/reference/telepathy-glib-sections.txt
+++ b/docs/reference/telepathy-glib-sections.txt
@@ -3072,6 +3072,7 @@ tp_account_manager_ensure_account
 tp_account_manager_get_valid_accounts
 tp_account_manager_get_most_available_presence
 tp_account_manager_set_all_requested_presences
+tp_account_manager_enable_restart
 <SUBSECTION>
 TP_ACCOUNT_MANAGER_FEATURE_CORE
 tp_account_manager_is_prepared
diff --git a/telepathy-glib/account-manager.c b/telepathy-glib/account-manager.c
index 8d1e3a3..8b6a019 100644
--- a/telepathy-glib/account-manager.c
+++ b/telepathy-glib/account-manager.c
@@ -592,18 +592,12 @@ _tp_account_manager_constructed (GObject *object)
       priv->features = g_list_prepend (priv->features, feature);
     }
 
-  tp_dbus_daemon_watch_name_owner (tp_proxy_get_dbus_daemon (self),
-      TP_ACCOUNT_MANAGER_BUS_NAME, _tp_account_manager_name_owner_cb,
-      self, NULL);
-
   tp_cli_account_manager_connect_to_account_validity_changed (self,
       _tp_account_manager_validity_changed_cb, NULL,
       NULL, G_OBJECT (self), NULL);
 
   tp_cli_dbus_properties_call_get_all (self, -1, TP_IFACE_ACCOUNT_MANAGER,
       _tp_account_manager_got_all_cb, NULL, NULL, G_OBJECT (self));
-
-  _tp_account_manager_start_mc5 (tp_proxy_get_dbus_daemon (self));
 }
 
 static void
@@ -1494,3 +1488,23 @@ _tp_account_manager_get_missing_features (TpAccountManager *manager)
 
   return (const GQuark *) manager->priv->missing_features->data;
 }
+
+/**
+ * tp_account_manager_enable_restart:
+ * @manager: a #TpAccountManager
+ *
+ * Enable autostarting the account manager D-Bus service. This means
+ * that the account manager will be restarted if it disappears from
+ * the bus.
+ */
+void
+tp_account_manager_enable_restart (TpAccountManager *manager)
+{
+  g_return_if_fail (TP_IS_ACCOUNT_MANAGER (manager));
+
+  tp_dbus_daemon_watch_name_owner (tp_proxy_get_dbus_daemon (manager),
+      TP_ACCOUNT_MANAGER_BUS_NAME, _tp_account_manager_name_owner_cb,
+      manager, NULL);
+
+  _tp_account_manager_start_mc5 (tp_proxy_get_dbus_daemon (manager));
+}
diff --git a/telepathy-glib/account-manager.h b/telepathy-glib/account-manager.h
index 9ef47dd..f117cd2 100644
--- a/telepathy-glib/account-manager.h
+++ b/telepathy-glib/account-manager.h
@@ -103,6 +103,8 @@ void tp_account_manager_prepare_async (TpAccountManager *manager,
 gboolean tp_account_manager_prepare_finish (TpAccountManager *manager,
     GAsyncResult *result, GError **error);
 
+void tp_account_manager_enable_restart (TpAccountManager *manager);
+
 G_END_DECLS
 
 #include <telepathy-glib/_gen/tp-cli-account-manager.h>
-- 
1.5.6.5




More information about the telepathy-commits mailing list