]> git.0d.be Git - empathy.git/commitdiff
Removed EmpathyAccount{,Manager}.
authorJonny Lamb <jonnylamb@gnome.org>
Fri, 23 Oct 2009 12:46:56 +0000 (13:46 +0100)
committerJonny Lamb <jonnylamb@gnome.org>
Fri, 23 Oct 2009 12:46:56 +0000 (13:46 +0100)
Signed-off-by: Jonny Lamb <jonnylamb@gnome.org>
libempathy/Makefile.am
libempathy/empathy-account-manager.c [deleted file]
libempathy/empathy-account-manager.h [deleted file]
libempathy/empathy-account.c [deleted file]
libempathy/empathy-account.h [deleted file]

index 1e7d01ca32a8527fdf2606dde4d95164ec67881f..91fdf7ba15ea69247835194e654cd030cba08cc1 100644 (file)
@@ -27,8 +27,6 @@ noinst_LTLIBRARIES = libempathy.la
 
 libempathy_headers =                           \
        empathy-account-settings.h              \
-       empathy-account.h                       \
-       empathy-account-manager.h               \
        empathy-chatroom.h                      \
        empathy-chatroom-manager.h              \
        empathy-call-factory.h                  \
@@ -70,9 +68,7 @@ libempathy_headers =                          \
 
 libempathy_la_SOURCES =                                        \
        $(libempathy_headers)                           \
-       empathy-account.c                               \
        empathy-account-settings.c                      \
-       empathy-account-manager.c                       \
        empathy-chatroom.c                              \
        empathy-chatroom-manager.c                      \
        empathy-call-factory.c                          \
diff --git a/libempathy/empathy-account-manager.c b/libempathy/empathy-account-manager.c
deleted file mode 100644 (file)
index c71439b..0000000
+++ /dev/null
@@ -1,1060 +0,0 @@
-/*
- * Copyright (C) 2008 Collabora Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * Authors: Cosimo Cecchi <cosimo.cecchi@collabora.co.uk>
- *          Sjoerd Simons <sjoerd.simons@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include <telepathy-glib/util.h>
-#include <telepathy-glib/account-manager.h>
-#include <telepathy-glib/enums.h>
-#include <telepathy-glib/defs.h>
-#include <telepathy-glib/dbus.h>
-#include <telepathy-glib/interfaces.h>
-
-#include "empathy-account-manager.h"
-#include "empathy-marshal.h"
-#include "empathy-utils.h"
-
-#define DEBUG_FLAG EMPATHY_DEBUG_ACCOUNT
-#include <libempathy/empathy-debug.h>
-
-#define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyAccountManager)
-
-#define MC5_BUS_NAME "org.freedesktop.Telepathy.MissionControl5"
-
-typedef struct {
-  /* (owned) unique name -> (reffed) EmpathyAccount */
-  GHashTable       *accounts;
-  int               connected;
-  int               connecting;
-  gboolean          dispose_run;
-  gboolean          ready;
-  TpAccountManager *tp_manager;
-  TpDBusDaemon *dbus;
-
-  /* global presence */
-  EmpathyAccount *global_account;
-
-  TpConnectionPresenceType global_presence;
-  gchar *global_status;
-  gchar *global_status_message;
-
-  /* requested global presence, could be different
-   * from the actual global one.
-   */
-  TpConnectionPresenceType requested_presence;
-  gchar *requested_status;
-  gchar *requested_status_message;
-
-  GHashTable *create_results;
-} EmpathyAccountManagerPriv;
-
-enum {
-  ACCOUNT_CREATED,
-  ACCOUNT_DELETED,
-  ACCOUNT_ENABLED,
-  ACCOUNT_DISABLED,
-  ACCOUNT_CHANGED,
-  ACCOUNT_CONNECTION_CHANGED,
-  GLOBAL_PRESENCE_CHANGED,
-  NEW_CONNECTION,
-  LAST_SIGNAL
-};
-
-enum {
-  PROP_READY = 1,
-};
-
-static guint signals[LAST_SIGNAL];
-static EmpathyAccountManager *manager_singleton = NULL;
-
-G_DEFINE_TYPE (EmpathyAccountManager, empathy_account_manager, G_TYPE_OBJECT);
-
-static void
-emp_account_connection_cb (EmpathyAccount *account,
-  GParamSpec *spec,
-  gpointer manager)
-{
-  TpConnection *connection = empathy_account_get_connection (account);
-
-  DEBUG ("Signalling connection %p of account %s",
-      connection, empathy_account_get_unique_name (account));
-
-  if (connection != NULL)
-    g_signal_emit (manager, signals[NEW_CONNECTION], 0, connection);
-}
-
-static void
-emp_account_enabled_cb (EmpathyAccount *account,
-  GParamSpec *spec,
-  gpointer manager)
-{
-  if (empathy_account_is_enabled (account))
-    g_signal_emit (manager, signals[ACCOUNT_ENABLED], 0, account);
-  else
-    g_signal_emit (manager, signals[ACCOUNT_DISABLED], 0, account);
-}
-
-static void
-emp_account_status_changed_cb (EmpathyAccount *account,
-  TpConnectionStatus old,
-  TpConnectionStatus new,
-  TpConnectionStatusReason reason,
-  gpointer user_data)
-{
-  EmpathyAccountManager *manager = EMPATHY_ACCOUNT_MANAGER (user_data);
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-
-  switch (old)
-    {
-      case TP_CONNECTION_STATUS_CONNECTING:
-        priv->connecting--;
-        break;
-      case TP_CONNECTION_STATUS_CONNECTED:
-        priv->connected--;
-        break;
-      default:
-        break;
-    }
-
-  switch (new)
-    {
-      case TP_CONNECTION_STATUS_CONNECTING:
-        priv->connecting++;
-        break;
-      case TP_CONNECTION_STATUS_CONNECTED:
-        priv->connected++;
-        break;
-      default:
-        break;
-    }
-
-  g_signal_emit (manager, signals[ACCOUNT_CONNECTION_CHANGED], 0,
-    account, reason, new, old);
-}
-
-static void
-emp_account_manager_update_global_presence (EmpathyAccountManager *manager)
-{
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-  TpConnectionPresenceType presence = TP_CONNECTION_PRESENCE_TYPE_OFFLINE;
-  EmpathyAccount *account = NULL;
-  GHashTableIter iter;
-  gpointer value;
-
-  /* Make the global presence is equal to the presence of the account with the
-   * highest availability */
-
-  g_hash_table_iter_init (&iter, priv->accounts);
-  while (g_hash_table_iter_next (&iter, NULL, &value))
-    {
-      EmpathyAccount *a = EMPATHY_ACCOUNT (value);
-      TpConnectionPresenceType p;
-
-      g_object_get (a, "presence", &p, NULL);
-
-      if (tp_connection_presence_type_cmp_availability (p, presence) > 0)
-        {
-          account = a;
-          presence = p;
-        }
-    }
-
-  priv->global_account = account;
-  g_free (priv->global_status);
-  g_free (priv->global_status_message);
-
-  if (account == NULL)
-    {
-      priv->global_presence = presence;
-      priv->global_status = NULL;
-      priv->global_status_message = NULL;
-      return;
-    }
-
-  g_object_get (account,
-    "presence", &priv->global_presence,
-    "status", &priv->global_status,
-    "status-message", &priv->global_status_message,
-    NULL);
-
-  DEBUG ("Updated global presence to: %s (%d) \"%s\"",
-    priv->global_status, priv->global_presence, priv->global_status_message);
-}
-
-static void
-emp_account_presence_changed_cb (EmpathyAccount *account,
-  TpConnectionPresenceType presence,
-  const gchar *status,
-  const gchar *status_message,
-  gpointer user_data)
-{
-  EmpathyAccountManager *manager = EMPATHY_ACCOUNT_MANAGER (user_data);
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-
-  if (tp_connection_presence_type_cmp_availability (presence,
-      priv->global_presence) > 0)
-    {
-      priv->global_account = account;
-
-      priv->global_presence = presence;
-
-      g_free (priv->global_status);
-      priv->global_status = g_strdup (status);
-
-      g_free (priv->global_status_message);
-      priv->global_status_message = g_strdup (status_message);
-
-      goto signal;
-    }
-  else if (priv->global_account == account)
-    {
-      emp_account_manager_update_global_presence (manager);
-      goto signal;
-    }
-
-  return;
-signal:
-    g_signal_emit (manager, signals[GLOBAL_PRESENCE_CHANGED], 0,
-      priv->global_presence, priv->global_status, priv->global_status_message);
-}
-
-static void
-emp_account_removed_cb (EmpathyAccount *account, gpointer user_data)
-{
-  EmpathyAccountManager *manager = EMPATHY_ACCOUNT_MANAGER (user_data);
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-
-  g_object_ref (account);
-  g_hash_table_remove (priv->accounts,
-    empathy_account_get_unique_name (account));
-
-  g_signal_emit (manager, signals[ACCOUNT_DELETED], 0, account);
-  g_object_unref (account);
-}
-
-static void
-empathy_account_manager_check_ready (EmpathyAccountManager *manager)
-{
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-  GHashTableIter iter;
-  gpointer value;
-
-  if (priv->ready)
-    return;
-
-  g_hash_table_iter_init (&iter, priv->accounts);
-  while (g_hash_table_iter_next (&iter, NULL, &value))
-    {
-      EmpathyAccount *account = EMPATHY_ACCOUNT (value);
-      gboolean ready;
-
-      g_object_get (account, "ready", &ready, NULL);
-
-      if (!ready)
-        return;
-    }
-
-  /* Rerequest global presence on the initial set of accounts for cases where a
-   * global presence was requested before the manager was ready */
-  if (priv->requested_presence != TP_CONNECTION_PRESENCE_TYPE_UNSET)
-    empathy_account_manager_request_global_presence (manager,
-      priv->requested_presence,
-      priv->requested_status,
-      priv->requested_status_message);
-
-  priv->ready = TRUE;
-  g_object_notify (G_OBJECT (manager), "ready");
-}
-
-static void
-account_manager_account_ready_cb (GObject *obj,
-    GParamSpec *spec,
-    gpointer user_data)
-{
-  EmpathyAccountManager *manager = EMPATHY_ACCOUNT_MANAGER (user_data);
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-  EmpathyAccount *account = EMPATHY_ACCOUNT (obj);
-  GSimpleAsyncResult *result;
-  gboolean ready;
-
-  g_object_get (account, "ready", &ready, NULL);
-
-  if (!ready)
-    return;
-
-  /* see if there's any pending callbacks for this account */
-  result = g_hash_table_lookup (priv->create_results, account);
-  if (result != NULL)
-    {
-      g_simple_async_result_set_op_res_gpointer (
-          G_SIMPLE_ASYNC_RESULT (result), account, NULL);
-
-      g_simple_async_result_complete (result);
-
-      g_hash_table_remove (priv->create_results, account);
-      g_object_unref (result);
-    }
-
-  g_signal_emit (manager, signals[ACCOUNT_CREATED], 0, account);
-
-  g_signal_connect (account, "notify::connection",
-    G_CALLBACK (emp_account_connection_cb), manager);
-
-  g_signal_connect (account, "notify::enabled",
-    G_CALLBACK (emp_account_enabled_cb), manager);
-
-  g_signal_connect (account, "status-changed",
-    G_CALLBACK (emp_account_status_changed_cb), manager);
-
-  g_signal_connect (account, "presence-changed",
-    G_CALLBACK (emp_account_presence_changed_cb), manager);
-
-  g_signal_connect (account, "removed",
-    G_CALLBACK (emp_account_removed_cb), manager);
-
-  empathy_account_manager_check_ready (manager);
-}
-
-EmpathyAccount *
-empathy_account_manager_get_account (EmpathyAccountManager *manager,
-  const gchar *path)
-{
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-
-  return g_hash_table_lookup (priv->accounts, path);
-}
-
-EmpathyAccount *
-empathy_account_manager_ensure_account (EmpathyAccountManager *manager,
-  const gchar *path)
-{
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-  EmpathyAccount *account;
-
-  account = g_hash_table_lookup (priv->accounts, path);
-  if (account != NULL)
-    return account;
-
-  account = empathy_account_new (priv->dbus, path);
-  g_hash_table_insert (priv->accounts, g_strdup (path), account);
-
-  g_signal_connect (account, "notify::ready",
-    G_CALLBACK (account_manager_account_ready_cb), manager);
-
-  return account;
-}
-
-
-static void
-account_manager_ensure_all_accounts (EmpathyAccountManager *manager,
-    GPtrArray *accounts)
-{
-  guint i, missing_accounts;
-  GHashTableIter iter;
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-  gpointer value;
-  EmpathyAccount *account;
-  gboolean found = FALSE;
-  const gchar *name;
-
-  /* ensure all accounts coming from MC5 first */
-  for (i = 0; i < accounts->len; i++)
-    {
-      name = g_ptr_array_index (accounts, i);
-
-      account = empathy_account_manager_ensure_account (manager, name);
-      empathy_account_refresh_properties (account);
-    }
-
-  missing_accounts = empathy_account_manager_get_count (manager) -
-    accounts->len;
-
-  if (missing_accounts > 0)
-    {
-      /* look for accounts we have and the Tp AccountManager doesn't,
-       * and remove them from our cache.
-       */
-
-      DEBUG ("%d missing accounts", missing_accounts);
-
-      g_hash_table_iter_init (&iter, priv->accounts);
-
-      while (g_hash_table_iter_next (&iter, NULL, &value) &&
-            missing_accounts > 0)
-        {
-          account = value;
-
-          /* look for this account in the AccountManager provided array */
-          for (i = 0; i < accounts->len; i++)
-            {
-              name = g_ptr_array_index (accounts, i);
-
-              if (!tp_strdiff
-                  (name, empathy_account_get_unique_name (account)))
-                {
-                  found = TRUE;
-                  break;
-                }
-            }
-
-          if (!found)
-            {
-              DEBUG ("Account %s was not found, remove it from the cache",
-                    empathy_account_get_unique_name (account));
-
-             g_object_ref (account);
-             g_hash_table_iter_remove (&iter);
-             g_signal_emit (manager, signals[ACCOUNT_DELETED], 0, account);
-             g_object_unref (account);
-
-              missing_accounts--;
-            }
-
-          found = FALSE;
-        }
-    }
-}
-
-static void
-account_manager_got_all_cb (TpProxy *proxy,
-    GHashTable *properties,
-    const GError *error,
-    gpointer user_data,
-    GObject *weak_object)
-{
-  EmpathyAccountManager *manager = EMPATHY_ACCOUNT_MANAGER (weak_object);
-  GPtrArray *accounts;
-
-  if (error != NULL)
-    {
-      DEBUG ("Failed to get account manager properties: %s", error->message);
-      return;
-    }
-
-  accounts = tp_asv_get_boxed (properties, "ValidAccounts",
-    EMPATHY_ARRAY_TYPE_OBJECT);
-
-  if (accounts != NULL)
-    account_manager_ensure_all_accounts (manager, accounts);
-
-  empathy_account_manager_check_ready (manager);
-}
-
-static void
-account_validity_changed_cb (TpAccountManager *proxy,
-    const gchar *path,
-    gboolean valid,
-    gpointer user_data,
-    GObject *weak_object)
-{
-  EmpathyAccountManager *manager = EMPATHY_ACCOUNT_MANAGER (weak_object);
-
-  if (!valid)
-    return;
-
-  empathy_account_manager_ensure_account (manager, path);
-}
-
-static void
-account_manager_start_mc5 (TpDBusDaemon *bus)
-{
-  TpProxy *mc5_proxy;
-
-  /* trigger MC5 starting */
-  mc5_proxy = g_object_new (TP_TYPE_PROXY,
-    "dbus-daemon", bus,
-    "dbus-connection", tp_proxy_get_dbus_connection (TP_PROXY (bus)),
-    "bus-name", MC5_BUS_NAME,
-    "object-path", "/",
-    NULL);
-
-  tp_cli_dbus_peer_call_ping (mc5_proxy, -1, NULL, NULL, NULL, NULL);
-
-  g_object_unref (mc5_proxy);
-}
-
-static void
-account_manager_name_owner_cb (TpDBusDaemon *proxy,
-    const gchar *name,
-    const gchar *new_owner,
-    gpointer user_data)
-{
-  EmpathyAccountManager *manager = EMPATHY_ACCOUNT_MANAGER (user_data);
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-
-  DEBUG ("Name owner changed for %s, new name: %s", name, new_owner);
-
-  if (EMP_STR_EMPTY (new_owner))
-    {
-      /* MC5 quit or crashed for some reason, let's start it again */
-      account_manager_start_mc5 (priv->dbus);
-
-      if (priv->tp_manager != NULL)
-        g_object_unref (priv->tp_manager);
-
-      priv->tp_manager = NULL;
-      return;
-    }
-
-  if (priv->tp_manager == NULL)
-    {
-      priv->tp_manager = tp_account_manager_new (priv->dbus);
-
-      tp_cli_account_manager_connect_to_account_validity_changed (
-          priv->tp_manager,
-          account_validity_changed_cb,
-          NULL,
-          NULL,
-          G_OBJECT (manager),
-          NULL);
-
-      tp_cli_dbus_properties_call_get_all (priv->tp_manager, -1,
-          TP_IFACE_ACCOUNT_MANAGER,
-          account_manager_got_all_cb,
-          NULL,
-          NULL,
-          G_OBJECT (manager));
-    }
-}
-
-static void
-empathy_account_manager_init (EmpathyAccountManager *manager)
-{
-  EmpathyAccountManagerPriv *priv;
-
-  priv = G_TYPE_INSTANCE_GET_PRIVATE (manager,
-      EMPATHY_TYPE_ACCOUNT_MANAGER, EmpathyAccountManagerPriv);
-
-  manager->priv = priv;
-  priv->connected = priv->connecting = 0;
-  priv->global_presence = TP_CONNECTION_PRESENCE_TYPE_UNSET;
-
-  priv->accounts = g_hash_table_new_full (g_str_hash, g_str_equal,
-      g_free, (GDestroyNotify) g_object_unref);
-
-  priv->create_results = g_hash_table_new (g_direct_hash, g_direct_equal);
-
-  priv->dbus = tp_dbus_daemon_dup (NULL);
-
-  tp_dbus_daemon_watch_name_owner (priv->dbus,
-      TP_ACCOUNT_MANAGER_BUS_NAME,
-      account_manager_name_owner_cb,
-      manager,
-      NULL);
-
-  account_manager_start_mc5 (priv->dbus);
-}
-
-static void
-do_finalize (GObject *obj)
-{
-  EmpathyAccountManager *manager = EMPATHY_ACCOUNT_MANAGER (obj);
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-
-  g_hash_table_destroy (priv->create_results);
-  g_hash_table_destroy (priv->accounts);
-
-  g_free (priv->global_status);
-  g_free (priv->global_status_message);
-
-  g_free (priv->requested_status);
-  g_free (priv->requested_status_message);
-
-  G_OBJECT_CLASS (empathy_account_manager_parent_class)->finalize (obj);
-}
-
-static void
-do_dispose (GObject *obj)
-{
-  EmpathyAccountManager *manager = EMPATHY_ACCOUNT_MANAGER (obj);
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-  GHashTableIter iter;
-  GSimpleAsyncResult *result;
-
-  if (priv->dispose_run)
-    return;
-
-  priv->dispose_run = TRUE;
-
-  /* the manager is being destroyed while there are account creation
-   * processes pending; this should not happen, but emit the callbacks
-   * with an error anyway.
-   */
-  g_hash_table_iter_init (&iter, priv->create_results);
-  while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &result))
-    {
-      g_simple_async_result_set_error (result, G_IO_ERROR,
-          G_IO_ERROR_CANCELLED, "The account manager was disposed while "
-          "creating the account");
-      g_simple_async_result_complete (result);
-      g_object_unref (result);
-    }
-  g_hash_table_remove_all (priv->create_results);
-
-  if (priv->dbus != NULL)
-    {
-      tp_dbus_daemon_cancel_name_owner_watch (priv->dbus,
-        TP_ACCOUNT_MANAGER_BUS_NAME, account_manager_name_owner_cb, manager);
-
-      g_object_unref (priv->dbus);
-      priv->dbus = NULL;
-    }
-
-  G_OBJECT_CLASS (empathy_account_manager_parent_class)->dispose (obj);
-}
-
-static GObject *
-do_constructor (GType type,
-                guint n_construct_params,
-                GObjectConstructParam *construct_params)
-{
-  GObject *retval;
-
-  if (!manager_singleton)
-    {
-      retval = G_OBJECT_CLASS
-        (empathy_account_manager_parent_class)->constructor (type,
-            n_construct_params, construct_params);
-      manager_singleton = EMPATHY_ACCOUNT_MANAGER (retval);
-      g_object_add_weak_pointer (retval, (gpointer) &manager_singleton);
-    }
-  else
-    {
-      retval = g_object_ref (manager_singleton);
-    }
-
-  return retval;
-}
-
-static void
-do_get_property (GObject *object,
-    guint prop_id,
-    GValue *value,
-    GParamSpec *pspec)
-{
-  EmpathyAccountManager *manager = EMPATHY_ACCOUNT_MANAGER (object);
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-
-  switch (prop_id)
-    {
-      case PROP_READY:
-        g_value_set_boolean (value, priv->ready);
-        break;
-      default:
-        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-        break;
-    }
-}
-
-static void
-empathy_account_manager_class_init (EmpathyAccountManagerClass *klass)
-{
-  GObjectClass *oclass = G_OBJECT_CLASS (klass);
-
-  oclass->finalize = do_finalize;
-  oclass->dispose = do_dispose;
-  oclass->constructor = do_constructor;
-  oclass->get_property = do_get_property;
-
-  g_object_class_install_property (oclass, PROP_READY,
-    g_param_spec_boolean ("ready",
-      "Ready",
-      "Whether the initial state dump from the account manager is finished",
-      FALSE,
-      G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
-
-  signals[ACCOUNT_CREATED] =
-    g_signal_new ("account-created",
-                  G_TYPE_FROM_CLASS (klass),
-                  G_SIGNAL_RUN_LAST,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__OBJECT,
-                  G_TYPE_NONE,
-                  1, EMPATHY_TYPE_ACCOUNT);
-
-  signals[ACCOUNT_DELETED] =
-    g_signal_new ("account-deleted",
-                  G_TYPE_FROM_CLASS (klass),
-                  G_SIGNAL_RUN_LAST,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__OBJECT,
-                  G_TYPE_NONE,
-                  1, EMPATHY_TYPE_ACCOUNT);
-
-  signals[ACCOUNT_ENABLED] =
-    g_signal_new ("account-enabled",
-                  G_TYPE_FROM_CLASS (klass),
-                  G_SIGNAL_RUN_LAST,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__OBJECT,
-                  G_TYPE_NONE,
-                  1, EMPATHY_TYPE_ACCOUNT);
-
-  signals[ACCOUNT_DISABLED] =
-    g_signal_new ("account-disabled",
-                  G_TYPE_FROM_CLASS (klass),
-                  G_SIGNAL_RUN_LAST,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__OBJECT,
-                  G_TYPE_NONE,
-                  1, EMPATHY_TYPE_ACCOUNT);
-
-  signals[ACCOUNT_CHANGED] =
-    g_signal_new ("account-changed",
-                  G_TYPE_FROM_CLASS (klass),
-                  G_SIGNAL_RUN_LAST,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__OBJECT,
-                  G_TYPE_NONE,
-                  1, EMPATHY_TYPE_ACCOUNT);
-
-  signals[ACCOUNT_CONNECTION_CHANGED] =
-    g_signal_new ("account-connection-changed",
-                  G_TYPE_FROM_CLASS (klass),
-                  G_SIGNAL_RUN_LAST,
-                  0,
-                  NULL, NULL,
-                  _empathy_marshal_VOID__OBJECT_INT_UINT_UINT,
-                  G_TYPE_NONE,
-                  4, EMPATHY_TYPE_ACCOUNT,
-                  G_TYPE_INT,   /* reason */
-                  G_TYPE_UINT,  /* actual connection */
-                  G_TYPE_UINT); /* previous connection */
-
-  signals[GLOBAL_PRESENCE_CHANGED] =
-    g_signal_new ("global-presence-changed",
-                  G_TYPE_FROM_CLASS (klass),
-                  G_SIGNAL_RUN_LAST,
-                  0,
-                  NULL, NULL,
-                  _empathy_marshal_VOID__UINT_STRING_STRING,
-                  G_TYPE_NONE,
-                  3, G_TYPE_UINT, /* Presence type */
-                  G_TYPE_STRING,  /* status */
-                  G_TYPE_STRING); /* stauts message*/
-
-  signals[NEW_CONNECTION] =
-    g_signal_new ("new-connection",
-                  G_TYPE_FROM_CLASS (klass),
-                  G_SIGNAL_RUN_LAST,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__OBJECT,
-                  G_TYPE_NONE,
-                  1, TP_TYPE_CONNECTION);
-
-  g_type_class_add_private (oclass, sizeof (EmpathyAccountManagerPriv));
-}
-
-/* public methods */
-
-EmpathyAccountManager *
-empathy_account_manager_dup_singleton (void)
-{
-  return g_object_new (EMPATHY_TYPE_ACCOUNT_MANAGER, NULL);
-}
-
-gboolean
-empathy_account_manager_is_ready (EmpathyAccountManager *manager)
-{
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-
-  return priv->ready;
-}
-
-int
-empathy_account_manager_get_connected_accounts (EmpathyAccountManager *manager)
-{
-  EmpathyAccountManagerPriv *priv;
-
-  g_return_val_if_fail (EMPATHY_IS_ACCOUNT_MANAGER (manager), 0);
-
-  priv = GET_PRIV (manager);
-
-  return priv->connected;
-}
-
-int
-empathy_account_manager_get_connecting_accounts (
-    EmpathyAccountManager *manager)
-{
-  EmpathyAccountManagerPriv *priv;
-
-  g_return_val_if_fail (EMPATHY_IS_ACCOUNT_MANAGER (manager), 0);
-
-  priv = GET_PRIV (manager);
-
-  return priv->connecting;
-}
-
-/**
- * empathy_account_manager_get_count:
- * @manager: a #EmpathyAccountManager
- *
- * Get the number of accounts.
- *
- * Returns: the number of accounts.
- **/
-int
-empathy_account_manager_get_count (EmpathyAccountManager *manager)
-{
-  EmpathyAccountManagerPriv *priv;
-
-  g_return_val_if_fail (EMPATHY_IS_ACCOUNT_MANAGER (manager), 0);
-
-  priv = GET_PRIV (manager);
-
-  return g_hash_table_size (priv->accounts);
-}
-
-EmpathyAccount *
-empathy_account_manager_get_account_for_connection (
-    EmpathyAccountManager *manager,
-    TpConnection          *connection)
-{
-  EmpathyAccountManagerPriv *priv;
-  GHashTableIter iter;
-  gpointer value;
-
-  g_return_val_if_fail (EMPATHY_IS_ACCOUNT_MANAGER (manager), 0);
-
-  priv = GET_PRIV (manager);
-
-  g_hash_table_iter_init (&iter, priv->accounts);
-  while (g_hash_table_iter_next (&iter, NULL, &value))
-    {
-      EmpathyAccount *account = EMPATHY_ACCOUNT (value);
-
-      if (connection == empathy_account_get_connection (account))
-          return account;
-    }
-
-  return NULL;
-}
-
-GList *
-empathy_account_manager_dup_accounts (EmpathyAccountManager *manager)
-{
-  EmpathyAccountManagerPriv *priv;
-  GList *ret;
-
-  g_return_val_if_fail (EMPATHY_IS_ACCOUNT_MANAGER (manager), NULL);
-
-  priv = GET_PRIV (manager);
-
-  ret = g_hash_table_get_values (priv->accounts);
-  g_list_foreach (ret, (GFunc) g_object_ref, NULL);
-
-  return ret;
-}
-
-/**
- * empathy_account_manager_dup_connections:
- * @manager: a #EmpathyAccountManager
- *
- * Get a #GList of all ready #TpConnection. The list must be freed with
- * g_list_free, and its elements must be unreffed.
- *
- * Returns: the list of connections
- **/
-GList *
-empathy_account_manager_dup_connections (EmpathyAccountManager *manager)
-{
-  EmpathyAccountManagerPriv *priv;
-  GHashTableIter iter;
-  gpointer value;
-  GList *ret = NULL;
-
-  g_return_val_if_fail (EMPATHY_IS_ACCOUNT_MANAGER (manager), NULL);
-
-  priv = GET_PRIV (manager);
-
-  g_hash_table_iter_init (&iter, priv->accounts);
-  while (g_hash_table_iter_next (&iter, NULL, &value))
-    {
-      EmpathyAccount *account = EMPATHY_ACCOUNT (value);
-      TpConnection *connection;
-
-      connection = empathy_account_get_connection (account);
-      if (connection != NULL)
-        ret = g_list_prepend (ret, g_object_ref (connection));
-    }
-
-  return ret;
-}
-
-void
-empathy_account_manager_request_global_presence (
-  EmpathyAccountManager *manager,
-  TpConnectionPresenceType type,
-  const gchar *status,
-  const gchar *message)
-{
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-  GHashTableIter iter;
-  gpointer value;
-
-  DEBUG ("request global presence, type: %d, status: %s, message: %s",
-         type, status, message);
-
-  g_hash_table_iter_init (&iter, priv->accounts);
-  while (g_hash_table_iter_next (&iter, NULL, &value))
-    {
-      EmpathyAccount *account = EMPATHY_ACCOUNT (value);
-      gboolean ready;
-
-      g_object_get (account, "ready", &ready, NULL);
-
-      if (ready)
-        empathy_account_request_presence (account, type, status, message);
-    }
-
-  /* save the requested global presence, to use it in case we create
-   * new accounts or some accounts become ready.
-   */
-  priv->requested_presence = type;
-
-  if (tp_strdiff (priv->requested_status, status))
-    {
-      g_free (priv->requested_status);
-      priv->requested_status = g_strdup (status);
-    }
-
-  if (tp_strdiff (priv->requested_status_message, message))
-    {
-      g_free (priv->requested_status_message);
-      priv->requested_status_message = g_strdup (message);
-    }
-}
-
-TpConnectionPresenceType
-empathy_account_manager_get_requested_global_presence (
-  EmpathyAccountManager *manager,
-  gchar **status,
-  gchar **message)
-{
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-
-  if (status != NULL)
-    *status = g_strdup (priv->requested_status);
-  if (message != NULL)
-    *message = g_strdup (priv->requested_status_message);
-
-  return priv->requested_presence;
-}
-
-TpConnectionPresenceType
-empathy_account_manager_get_global_presence (
-  EmpathyAccountManager *manager,
-  gchar **status,
-  gchar **message)
-{
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-
-  if (status != NULL)
-    *status = g_strdup (priv->global_status);
-  if (message != NULL)
-    *message = g_strdup (priv->global_status_message);
-
-  return priv->global_presence;
-}
-
-static void
-empathy_account_manager_created_cb (TpAccountManager *proxy,
-    const gchar *account_path,
-    const GError *error,
-    gpointer user_data,
-    GObject *weak_object)
-{
-  EmpathyAccountManager *manager = EMPATHY_ACCOUNT_MANAGER (weak_object);
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-  GSimpleAsyncResult *my_res = user_data;
-  EmpathyAccount *account;
-
-  if (error != NULL)
-    {
-      g_simple_async_result_set_from_error (my_res,
-          (GError *) error);
-      g_simple_async_result_complete (my_res);
-      g_object_unref (my_res);
-
-      return;
-    }
-
-  account = empathy_account_manager_ensure_account (manager, account_path);
-
-  g_hash_table_insert (priv->create_results, account, my_res);
-}
-
-void
-empathy_account_manager_create_account_async (EmpathyAccountManager *manager,
-    const gchar *connection_manager,
-    const gchar *protocol,
-    const gchar *display_name,
-    GHashTable *parameters,
-    GHashTable *properties,
-    GAsyncReadyCallback callback,
-    gpointer user_data)
-{
-  EmpathyAccountManagerPriv *priv = GET_PRIV (manager);
-  GSimpleAsyncResult *res;
-
-  res = g_simple_async_result_new
-    (G_OBJECT (manager), callback, user_data,
-     empathy_account_manager_create_account_finish);
-
-  tp_cli_account_manager_call_create_account (priv->tp_manager,
-      -1,
-      connection_manager,
-      protocol,
-      display_name,
-      parameters,
-      properties,
-      empathy_account_manager_created_cb,
-      res,
-      NULL,
-      G_OBJECT (manager));
-}
-
-EmpathyAccount *
-empathy_account_manager_create_account_finish (
-  EmpathyAccountManager *manager, GAsyncResult *result, GError **error)
-{
-  EmpathyAccount *retval;
-
-  if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result),
-      error))
-    return NULL;
-
-  g_return_val_if_fail (g_simple_async_result_is_valid (result,
-    G_OBJECT (manager), empathy_account_manager_create_account_finish), NULL);
-
-  retval = EMPATHY_ACCOUNT (g_simple_async_result_get_op_res_gpointer (
-    G_SIMPLE_ASYNC_RESULT (result)));
-
-  return retval;
-}
-
diff --git a/libempathy/empathy-account-manager.h b/libempathy/empathy-account-manager.h
deleted file mode 100644 (file)
index 7b4ebd9..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */
-/*
- * Copyright (C) 2008 Collabora Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * Authors: Cosimo Cecchi <cosimo.cecchi@collabora.co.uk>
- */
-
-#ifndef __EMPATHY_ACCOUNT_MANAGER_H__
-#define __EMPATHY_ACCOUNT_MANAGER_H__
-
-#include <glib-object.h>
-
-#include "empathy-account.h"
-
-G_BEGIN_DECLS
-
-#define EMPATHY_TYPE_ACCOUNT_MANAGER  (empathy_account_manager_get_type ())
-#define EMPATHY_ACCOUNT_MANAGER(o)    (G_TYPE_CHECK_INSTANCE_CAST ((o), \
-  EMPATHY_TYPE_ACCOUNT_MANAGER, EmpathyAccountManager))
-#define EMPATHY_ACCOUNT_MANAGER_CLASS(k)  (G_TYPE_CHECK_CLASS_CAST ((k), \
-  EMPATHY_TYPE_ACCOUNT_MANAGER, EmpathyAccountManagerClass))
-#define EMPATHY_IS_ACCOUNT_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), \
-  EMPATHY_TYPE_ACCOUNT_MANAGER))
-#define EMPATHY_IS_ACCOUNT_MANAGER_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), \
-  EMPATHY_TYPE_ACCOUNT_MANAGER))
-#define EMPATHY_ACCOUNT_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), \
-  EMPATHY_TYPE_ACCOUNT_MANAGER, EmpathyAccountManagerClass))
-
-typedef struct _EmpathyAccountManager      EmpathyAccountManager;
-typedef struct _EmpathyAccountManagerClass EmpathyAccountManagerClass;
-
-struct _EmpathyAccountManager {
-  GObject parent;
-  gpointer priv;
-};
-
-struct _EmpathyAccountManagerClass {
-  GObjectClass parent_class;
-};
-
-GType empathy_account_manager_get_type (void);
-
-/* public methods */
-
-EmpathyAccountManager * empathy_account_manager_dup_singleton (void);
-
-gboolean empathy_account_manager_is_ready (EmpathyAccountManager *manager);
-
-int                     empathy_account_manager_get_connected_accounts
-                                (EmpathyAccountManager *manager);
-int                     empathy_account_manager_get_connecting_accounts
-                                (EmpathyAccountManager *manager);
-int                     empathy_account_manager_get_count
-                                (EmpathyAccountManager *manager);
-EmpathyAccount *        empathy_account_manager_get_account_for_connection
-                                (EmpathyAccountManager *manager,
-                                 TpConnection          *connection);
-EmpathyAccount *        empathy_account_manager_ensure_account
-                                (EmpathyAccountManager *manager,
-                                 const gchar *unique_name);
-EmpathyAccount *        empathy_account_manager_get_account
-                                (EmpathyAccountManager *manager,
-                                 const gchar *unique_name);
-GList *                 empathy_account_manager_dup_accounts
-                                (EmpathyAccountManager *manager);
-GList *                 empathy_account_manager_dup_connections
-                                (EmpathyAccountManager *manager);
-
-void empathy_account_manager_request_global_presence (
-  EmpathyAccountManager *manager,
-  TpConnectionPresenceType type,
-  const gchar *status,
-  const gchar *message);
-
-TpConnectionPresenceType empathy_account_manager_get_requested_global_presence (
-  EmpathyAccountManager *manager,
-  gchar **status,
-  gchar **message);
-
-TpConnectionPresenceType empathy_account_manager_get_global_presence (
-  EmpathyAccountManager *manager,
-  gchar **status,
-  gchar **message);
-
-void empathy_account_manager_create_account_async (
-  EmpathyAccountManager *manager, const gchar *connection_manager,
-  const gchar *protocol, const gchar *display_name,
-  GHashTable *parameters, GHashTable *properties,
-  GAsyncReadyCallback callback, gpointer user_data);
-
-EmpathyAccount * empathy_account_manager_create_account_finish (
-  EmpathyAccountManager *settings, GAsyncResult *result, GError **error);
-
-G_END_DECLS
-
-#endif /* __EMPATHY_ACCOUNT_MANAGER_H__ */
-
diff --git a/libempathy/empathy-account.c b/libempathy/empathy-account.c
deleted file mode 100644 (file)
index fb1b275..0000000
+++ /dev/null
@@ -1,1305 +0,0 @@
-/*
- * empathy-account.c - Source for EmpathyAccount
- * Copyright (C) 2009 Collabora Ltd.
- * @author Sjoerd Simons <sjoerd.simons@collabora.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <telepathy-glib/enums.h>
-#include <telepathy-glib/dbus.h>
-#include <telepathy-glib/account.h>
-#include <telepathy-glib/gtypes.h>
-#include <telepathy-glib/util.h>
-#include <telepathy-glib/interfaces.h>
-#include <telepathy-glib/defs.h>
-
-#define DEBUG_FLAG EMPATHY_DEBUG_ACCOUNT
-#include <libempathy/empathy-debug.h>
-
-#include <glib/gi18n-lib.h>
-
-#include "empathy-account.h"
-#include "empathy-account-manager.h"
-#include "empathy-utils.h"
-#include "empathy-marshal.h"
-
-/* signals */
-enum {
-  STATUS_CHANGED,
-  PRESENCE_CHANGED,
-  REMOVED,
-  LAST_SIGNAL
-};
-
-static guint signals[LAST_SIGNAL];
-
-/* properties */
-enum {
-  PROP_ENABLED = 1,
-  PROP_PRESENCE,
-  PROP_STATUS,
-  PROP_STATUS_MESSAGE,
-  PROP_READY,
-  PROP_CONNECTION_STATUS,
-  PROP_CONNECTION_STATUS_REASON,
-  PROP_CONNECTION,
-  PROP_UNIQUE_NAME,
-  PROP_DBUS_DAEMON,
-  PROP_DISPLAY_NAME
-};
-
-G_DEFINE_TYPE(EmpathyAccount, empathy_account, G_TYPE_OBJECT)
-
-/* private structure */
-typedef struct _EmpathyAccountPriv EmpathyAccountPriv;
-
-struct _EmpathyAccountPriv
-{
-  gboolean dispose_has_run;
-
-  TpConnection *connection;
-  guint connection_invalidated_id;
-
-  TpConnectionStatus connection_status;
-  TpConnectionStatusReason reason;
-
-  TpConnectionPresenceType presence;
-  gchar *status;
-  gchar *message;
-
-  gboolean enabled;
-  gboolean valid;
-  gboolean ready;
-  gboolean removed;
-  /* Timestamp when the connection got connected in seconds since the epoch */
-  glong connect_time;
-
-  gchar *cm_name;
-  gchar *proto_name;
-  gchar *icon_name;
-
-  gchar *unique_name;
-  gchar *display_name;
-  TpDBusDaemon *dbus;
-
-  TpAccount *account;
-  GHashTable *parameters;
-};
-
-#define GET_PRIV(obj)  EMPATHY_GET_PRIV (obj, EmpathyAccount)
-
-static void _empathy_account_set_connection (EmpathyAccount *account,
-    const gchar *path);
-
-static void
-empathy_account_init (EmpathyAccount *obj)
-{
-  EmpathyAccountPriv *priv;
-
-  priv =  G_TYPE_INSTANCE_GET_PRIVATE (obj,
-    EMPATHY_TYPE_ACCOUNT, EmpathyAccountPriv);
-
-  obj->priv = priv;
-
-  priv->connection_status = TP_CONNECTION_STATUS_DISCONNECTED;
-}
-
-static void
-empathy_account_set_property (GObject *object,
-    guint prop_id,
-    const GValue *value,
-    GParamSpec *pspec)
-{
-  EmpathyAccount *account = EMPATHY_ACCOUNT (object);
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-
-  switch (prop_id)
-    {
-      case PROP_ENABLED:
-        empathy_account_set_enabled_async (account,
-            g_value_get_boolean (value), NULL, NULL);
-        break;
-      case PROP_UNIQUE_NAME:
-        priv->unique_name = g_value_dup_string (value);
-        break;
-      case PROP_DBUS_DAEMON:
-        priv->dbus = g_value_get_object (value);
-        break;
-      default:
-        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-        break;
-    }
-}
-
-static void
-empathy_account_get_property (GObject *object,
-    guint prop_id,
-    GValue *value,
-    GParamSpec *pspec)
-{
-  EmpathyAccount *account = EMPATHY_ACCOUNT (object);
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-
-  switch (prop_id)
-    {
-      case PROP_ENABLED:
-        g_value_set_boolean (value, priv->enabled);
-        break;
-      case PROP_READY:
-        g_value_set_boolean (value, priv->ready);
-        break;
-      case PROP_PRESENCE:
-        g_value_set_uint (value, priv->presence);
-        break;
-      case PROP_STATUS:
-        g_value_set_string (value, priv->status);
-        break;
-      case PROP_STATUS_MESSAGE:
-        g_value_set_string (value, priv->message);
-        break;
-      case PROP_CONNECTION_STATUS:
-        g_value_set_uint (value, priv->connection_status);
-        break;
-      case PROP_CONNECTION_STATUS_REASON:
-        g_value_set_uint (value, priv->reason);
-        break;
-      case PROP_CONNECTION:
-        g_value_set_object (value,
-            empathy_account_get_connection (account));
-        break;
-      case PROP_UNIQUE_NAME:
-        g_value_set_string (value,
-            empathy_account_get_unique_name (account));
-        break;
-      case PROP_DISPLAY_NAME:
-        g_value_set_string (value,
-            empathy_account_get_display_name (account));
-        break;
-      case PROP_DBUS_DAEMON:
-        g_value_set_object (value, priv->dbus);
-        break;
-      default:
-        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-        break;
-    }
-}
-
-static void
-empathy_account_update (EmpathyAccount *account,
-    GHashTable *properties)
-{
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-  GValueArray *arr;
-  TpConnectionStatus old_s = priv->connection_status;
-  gboolean presence_changed = FALSE;
-
-  if (g_hash_table_lookup (properties, "ConnectionStatus") != NULL)
-    priv->connection_status =
-      tp_asv_get_int32 (properties, "ConnectionStatus", NULL);
-
-  if (g_hash_table_lookup (properties, "ConnectionStatusReason") != NULL)
-    priv->reason = tp_asv_get_int32 (properties,
-      "ConnectionStatusReason", NULL);
-
-  if (g_hash_table_lookup (properties, "CurrentPresence") != NULL)
-    {
-      presence_changed = TRUE;
-      arr = tp_asv_get_boxed (properties, "CurrentPresence",
-        TP_STRUCT_TYPE_SIMPLE_PRESENCE);
-      priv->presence = g_value_get_uint (g_value_array_get_nth (arr, 0));
-
-      g_free (priv->status);
-      priv->status = g_value_dup_string (g_value_array_get_nth (arr, 1));
-
-      g_free (priv->message);
-      priv->message = g_value_dup_string (g_value_array_get_nth (arr, 2));
-    }
-
-  if (g_hash_table_lookup (properties, "DisplayName") != NULL)
-    {
-      g_free (priv->display_name);
-      priv->display_name =
-        g_strdup (tp_asv_get_string (properties, "DisplayName"));
-      g_object_notify (G_OBJECT (account), "display-name");
-    }
-
-  if (g_hash_table_lookup (properties, "Icon") != NULL)
-    {
-      const gchar *icon_name;
-
-      icon_name = tp_asv_get_string (properties, "Icon");
-
-      g_free (priv->icon_name);
-
-      if (EMP_STR_EMPTY (icon_name))
-        priv->icon_name = empathy_protocol_icon_name (priv->proto_name);
-      else
-        priv->icon_name = g_strdup (icon_name);
-    }
-
-  if (g_hash_table_lookup (properties, "Enabled") != NULL)
-    {
-      gboolean enabled = tp_asv_get_boolean (properties, "Enabled", NULL);
-      if (priv->enabled != enabled)
-        {
-          priv->enabled = enabled;
-          g_object_notify (G_OBJECT (account), "enabled");
-        }
-    }
-
-  if (g_hash_table_lookup (properties, "Valid") != NULL)
-    priv->valid = tp_asv_get_boolean (properties, "Valid", NULL);
-
-  if (g_hash_table_lookup (properties, "Parameters") != NULL)
-    {
-      GHashTable *parameters;
-
-      parameters = tp_asv_get_boxed (properties, "Parameters",
-        TP_HASH_TYPE_STRING_VARIANT_MAP);
-
-      if (priv->parameters != NULL)
-        g_hash_table_unref (priv->parameters);
-
-      priv->parameters = g_boxed_copy (TP_HASH_TYPE_STRING_VARIANT_MAP,
-        parameters);
-    }
-
-  if (!priv->ready)
-    {
-      priv->ready = TRUE;
-      g_object_notify (G_OBJECT (account), "ready");
-    }
-
-  if (priv->connection_status != old_s)
-    {
-      if (priv->connection_status == TP_CONNECTION_STATUS_CONNECTED)
-        {
-          GTimeVal val;
-          g_get_current_time (&val);
-
-          priv->connect_time = val.tv_sec;
-        }
-
-      g_signal_emit (account, signals[STATUS_CHANGED], 0,
-        old_s, priv->connection_status, priv->reason);
-
-      g_object_notify (G_OBJECT (account), "connection-status");
-      g_object_notify (G_OBJECT (account), "connection-status-reason");
-    }
-
-  if (presence_changed)
-    {
-      g_signal_emit (account, signals[PRESENCE_CHANGED], 0,
-        priv->presence, priv->status, priv->message);
-      g_object_notify (G_OBJECT (account), "presence");
-      g_object_notify (G_OBJECT (account), "status");
-      g_object_notify (G_OBJECT (account), "status-message");
-    }
-
-  if (g_hash_table_lookup (properties, "Connection") != NULL)
-    {
-      const gchar *conn_path =
-        tp_asv_get_object_path (properties, "Connection");
-
-      _empathy_account_set_connection (account, conn_path);
-    }
-}
-
-static void
-empathy_account_properties_changed (TpAccount *proxy,
-    GHashTable *properties,
-    gpointer user_data,
-    GObject *weak_object)
-{
-  EmpathyAccount *account = EMPATHY_ACCOUNT (weak_object);
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-
-  if (!priv->ready)
-    return;
-
-  empathy_account_update (account, properties);
-}
-
-static void
-empathy_account_removed_cb (TpAccount *proxy,
-    gpointer user_data,
-    GObject *weak_object)
-{
-  EmpathyAccount *account = EMPATHY_ACCOUNT (weak_object);
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-
-  if (priv->removed)
-    return;
-
-  priv->removed = TRUE;
-
-  g_signal_emit (account, signals[REMOVED], 0);
-}
-
-static void
-empathy_account_got_all_cb (TpProxy *proxy,
-    GHashTable *properties,
-    const GError *error,
-    gpointer user_data,
-    GObject *weak_object)
-{
-  EmpathyAccount *account = EMPATHY_ACCOUNT (weak_object);
-
-  DEBUG ("Got whole set of properties for %s",
-    empathy_account_get_unique_name (account));
-
-  if (error != NULL)
-    {
-      DEBUG ("Failed to get the initial set of account properties: %s",
-        error->message);
-      return;
-    }
-
-  empathy_account_update (account, properties);
-}
-
-static gchar *
-empathy_account_unescape_protocol (const gchar *protocol, gssize len)
-{
-  gchar  *result, *escape;
-  /* Bad implementation might accidentally use tp_escape_as_identifier,
-   * which escapes - in the wrong way... */
-  if ((escape = g_strstr_len (protocol, len, "_2d")) != NULL)
-    {
-      GString *str;
-      const gchar *input;
-
-      str = g_string_new ("");
-      input = protocol;
-      do {
-        g_string_append_len (str, input, escape - input);
-        g_string_append_c (str, '-');
-
-        len -= escape - input + 3;
-        input = escape + 3;
-      } while ((escape = g_strstr_len (input, len, "_2d")) != NULL);
-
-      g_string_append_len (str, input, len);
-
-      result = g_string_free (str, FALSE);
-    }
-  else
-    {
-      result = g_strndup (protocol, len);
-    }
-
-  g_strdelimit (result, "_", '-');
-
-  return result;
-}
-
-static gboolean
-empathy_account_parse_unique_name (const gchar *bus_name,
-    gchar **protocol, gchar **manager)
-{
-  const gchar *proto, *proto_end;
-  const gchar *cm, *cm_end;
-
-  g_return_val_if_fail (
-    g_str_has_prefix (bus_name, TP_ACCOUNT_OBJECT_PATH_BASE), FALSE);
-
-  cm = bus_name + strlen (TP_ACCOUNT_OBJECT_PATH_BASE);
-
-  for (cm_end = cm; *cm_end != '/' && *cm_end != '\0'; cm_end++)
-    /* pass */;
-
-  if (*cm_end == '\0')
-    return FALSE;
-
-  if (cm_end == '\0')
-    return FALSE;
-
-  proto = cm_end + 1;
-
-  for (proto_end = proto; *proto_end != '/' && *proto_end != '\0'; proto_end++)
-    /* pass */;
-
-  if (*proto_end == '\0')
-    return FALSE;
-
-  if (protocol != NULL)
-    {
-      *protocol = empathy_account_unescape_protocol (proto, proto_end - proto);
-    }
-
-  if (manager != NULL)
-    *manager = g_strndup (cm, cm_end - cm);
-
-  return TRUE;
-}
-
-static void
-account_invalidated_cb (TpProxy *proxy, guint domain, gint code,
-  gchar *message, gpointer user_data)
-{
-  EmpathyAccount *account = EMPATHY_ACCOUNT (user_data);
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-
-  if (priv->removed)
-    return;
-
-  priv->removed = TRUE;
-
-  g_signal_emit (account, signals[REMOVED], 0);
-}
-
-static void
-empathy_account_constructed (GObject *object)
-{
-  EmpathyAccount *account = EMPATHY_ACCOUNT (object);
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-
-  priv->account = tp_account_new (priv->dbus, priv->unique_name, NULL);
-
-  g_signal_connect (priv->account, "invalidated",
-    G_CALLBACK (account_invalidated_cb), object);
-
-  empathy_account_parse_unique_name (priv->unique_name,
-    &(priv->proto_name), &(priv->cm_name));
-
-  priv->icon_name = empathy_protocol_icon_name (priv->proto_name);
-
-  tp_cli_account_connect_to_account_property_changed (priv->account,
-    empathy_account_properties_changed,
-    NULL, NULL, object, NULL);
-
-  tp_cli_account_connect_to_removed (priv->account,
-    empathy_account_removed_cb,
-    NULL, NULL, object, NULL);
-
-  empathy_account_refresh_properties (account);
-}
-
-static void empathy_account_dispose (GObject *object);
-static void empathy_account_finalize (GObject *object);
-
-static void
-empathy_account_class_init (EmpathyAccountClass *empathy_account_class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (empathy_account_class);
-
-  g_type_class_add_private (empathy_account_class,
-    sizeof (EmpathyAccountPriv));
-
-  object_class->set_property = empathy_account_set_property;
-  object_class->get_property = empathy_account_get_property;
-  object_class->dispose = empathy_account_dispose;
-  object_class->finalize = empathy_account_finalize;
-  object_class->constructed = empathy_account_constructed;
-
-  g_object_class_install_property (object_class, PROP_ENABLED,
-    g_param_spec_boolean ("enabled",
-      "Enabled",
-      "Whether this account is enabled or not",
-      FALSE,
-      G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE));
-
-  g_object_class_install_property (object_class, PROP_READY,
-    g_param_spec_boolean ("ready",
-      "Ready",
-      "Whether this account is ready to be used",
-      FALSE,
-      G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
-
-  g_object_class_install_property (object_class, PROP_PRESENCE,
-    g_param_spec_uint ("presence",
-      "Presence",
-      "The account connections presence type",
-      0,
-      NUM_TP_CONNECTION_PRESENCE_TYPES,
-      TP_CONNECTION_PRESENCE_TYPE_UNSET,
-      G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
-
-  g_object_class_install_property (object_class, PROP_STATUS,
-    g_param_spec_string ("status",
-      "Status",
-      "The Status string of the account",
-      NULL,
-      G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
-
-  g_object_class_install_property (object_class, PROP_STATUS_MESSAGE,
-    g_param_spec_string ("status-message",
-      "status-message",
-      "The Status message string of the account",
-      NULL,
-      G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
-
-  g_object_class_install_property (object_class, PROP_CONNECTION_STATUS,
-    g_param_spec_uint ("connection-status",
-      "ConnectionStatus",
-      "The accounts connections status type",
-      0,
-      NUM_TP_CONNECTION_STATUSES,
-      TP_CONNECTION_STATUS_DISCONNECTED,
-      G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
-
-  g_object_class_install_property (object_class, PROP_CONNECTION_STATUS_REASON,
-    g_param_spec_uint ("connection-status-reason",
-      "ConnectionStatusReason",
-      "The account connections status reason",
-      0,
-      NUM_TP_CONNECTION_STATUS_REASONS,
-      TP_CONNECTION_STATUS_REASON_NONE_SPECIFIED,
-      G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
-
-  g_object_class_install_property (object_class, PROP_CONNECTION,
-    g_param_spec_object ("connection",
-      "Connection",
-      "The accounts connection",
-      TP_TYPE_CONNECTION,
-      G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
-
-  g_object_class_install_property (object_class, PROP_UNIQUE_NAME,
-    g_param_spec_string ("unique-name",
-      "UniqueName",
-      "The accounts unique name",
-      NULL,
-      G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
-  g_object_class_install_property (object_class, PROP_DBUS_DAEMON,
-    g_param_spec_object ("dbus-daemon",
-      "dbus-daemon",
-      "The Tp Dbus daemon on which this account exists",
-      TP_TYPE_DBUS_DAEMON,
-      G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
-  g_object_class_install_property (object_class, PROP_DISPLAY_NAME,
-    g_param_spec_string ("display-name",
-      "DisplayName",
-      "The accounts display name",
-      NULL,
-      G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
-
-  signals[STATUS_CHANGED] = g_signal_new ("status-changed",
-    G_TYPE_FROM_CLASS (object_class),
-    G_SIGNAL_RUN_LAST,
-    0, NULL, NULL,
-    _empathy_marshal_VOID__UINT_UINT_UINT,
-    G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT);
-
-  signals[PRESENCE_CHANGED] = g_signal_new ("presence-changed",
-    G_TYPE_FROM_CLASS (object_class),
-    G_SIGNAL_RUN_LAST,
-    0, NULL, NULL,
-    _empathy_marshal_VOID__UINT_STRING_STRING,
-    G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING);
-
-  signals[REMOVED] = g_signal_new ("removed",
-    G_TYPE_FROM_CLASS (object_class),
-    G_SIGNAL_RUN_LAST,
-    0, NULL, NULL,
-    g_cclosure_marshal_VOID__VOID,
-    G_TYPE_NONE, 0);
-}
-
-static void
-empathy_account_free_connection (EmpathyAccount *account)
-{
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-  TpConnection *conn;
-
-  if (priv->connection == NULL)
-    return;
-
-  conn = priv->connection;
-  priv->connection = NULL;
-
-  if (priv->connection_invalidated_id != 0)
-    g_signal_handler_disconnect (conn, priv->connection_invalidated_id);
-  priv->connection_invalidated_id = 0;
-
-  g_object_unref (conn);
-}
-
-void
-empathy_account_dispose (GObject *object)
-{
-  EmpathyAccount *self = EMPATHY_ACCOUNT (object);
-  EmpathyAccountPriv *priv = GET_PRIV (self);
-
-  if (priv->dispose_has_run)
-    return;
-
-  priv->dispose_has_run = TRUE;
-
-  empathy_account_free_connection (self);
-
-  /* release any references held by the object here */
-  if (G_OBJECT_CLASS (empathy_account_parent_class)->dispose != NULL)
-    G_OBJECT_CLASS (empathy_account_parent_class)->dispose (object);
-}
-
-void
-empathy_account_finalize (GObject *object)
-{
-  EmpathyAccountPriv *priv = GET_PRIV (object);
-
-  g_free (priv->status);
-  g_free (priv->message);
-
-  g_free (priv->cm_name);
-  g_free (priv->proto_name);
-  g_free (priv->icon_name);
-  g_free (priv->display_name);
-
-  /* free any data held directly by the object here */
-  if (G_OBJECT_CLASS (empathy_account_parent_class)->finalize != NULL)
-    G_OBJECT_CLASS (empathy_account_parent_class)->finalize (object);
-}
-
-gboolean
-empathy_account_is_just_connected (EmpathyAccount *account)
-{
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-  GTimeVal val;
-
-  if (priv->connection_status != TP_CONNECTION_STATUS_CONNECTED)
-    return FALSE;
-
-  g_get_current_time (&val);
-
-  return (val.tv_sec - priv->connect_time) < 10;
-}
-
-/**
- * empathy_account_get_connection:
- * @account: a #EmpathyAccount
- *
- * Get the connection of the account, or NULL if account is offline or the
- * connection is not yet ready. This function does not return a new ref.
- *
- * Returns: the connection of the account.
- **/
-TpConnection *
-empathy_account_get_connection (EmpathyAccount *account)
-{
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-
-  if (priv->connection != NULL &&
-      tp_connection_is_ready (priv->connection))
-    return priv->connection;
-
-  return NULL;
-}
-
-/**
- * empathy_account_get_connection_for_path:
- * @account: a #EmpathyAccount
- * @patch: the path to connection object for #EmpathyAccount
- *
- * Get the connection of the account on path. This function does not return a
- * new ref. It is not guaranteed that the returned connection object is ready
- *
- * Returns: the connection of the account.
- **/
-TpConnection *
-empathy_account_get_connection_for_path (EmpathyAccount *account,
-  const gchar *path)
-{
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-
-  /* double-check that the object path is valid */
-  if (!tp_dbus_check_valid_object_path (path, NULL))
-    return NULL;
-
-  /* Should be a full object path, not the special "/" value */
-  if (strlen (path) == 1)
-    return NULL;
-
-  _empathy_account_set_connection (account, path);
-
-  return priv->connection;
-}
-
-/**
- * empathy_account_get_unique_name:
- * @account: a #EmpathyAccount
- *
- * Returns: the unique name of the account.
- **/
-const gchar *
-empathy_account_get_unique_name (EmpathyAccount *account)
-{
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-
-  return priv->unique_name;
-}
-
-/**
- * empathy_account_get_display_name:
- * @account: a #EmpathyAccount
- *
- * Returns: the display name of the account.
- **/
-const gchar *
-empathy_account_get_display_name (EmpathyAccount *account)
-{
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-
-  return priv->display_name;
-}
-
-gboolean
-empathy_account_is_valid (EmpathyAccount *account)
-{
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-
-  return priv->valid;
-}
-
-const gchar *
-empathy_account_get_connection_manager (EmpathyAccount *account)
-{
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-
-  return priv->cm_name;
-}
-
-const gchar *
-empathy_account_get_protocol (EmpathyAccount *account)
-{
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-
-  return priv->proto_name;
-}
-
-const gchar *
-empathy_account_get_icon_name (EmpathyAccount *account)
-{
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-
-  return priv->icon_name;
-}
-
-const GHashTable *
-empathy_account_get_parameters (EmpathyAccount *account)
-{
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-
-  return priv->parameters;
-}
-
-gboolean
-empathy_account_is_enabled (EmpathyAccount *account)
-{
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-
-  return priv->enabled;
-}
-
-gboolean
-empathy_account_is_ready (EmpathyAccount *account)
-{
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-
-  return priv->ready;
-}
-
-
-EmpathyAccount *
-empathy_account_new (TpDBusDaemon *dbus,
-    const gchar *unique_name)
-{
-  return EMPATHY_ACCOUNT (g_object_new (EMPATHY_TYPE_ACCOUNT,
-    "dbus-daemon", dbus,
-    "unique-name", unique_name,
-    NULL));
-}
-
-static void
-empathy_account_connection_ready_cb (TpConnection *connection,
-    const GError *error,
-    gpointer user_data)
-{
-  EmpathyAccount *account = EMPATHY_ACCOUNT (user_data);
-
-  if (error != NULL)
-    {
-      DEBUG ("(%s) Connection failed to become ready: %s",
-        empathy_account_get_unique_name (account), error->message);
-      empathy_account_free_connection (account);
-    }
-  else
-    {
-      DEBUG ("(%s) Connection ready",
-        empathy_account_get_unique_name (account));
-      g_object_notify (G_OBJECT (account), "connection");
-    }
-}
-
-static void
-_empathy_account_connection_invalidated_cb (TpProxy *self,
-  guint    domain,
-  gint     code,
-  gchar   *message,
-  gpointer user_data)
-{
-  EmpathyAccount *account = EMPATHY_ACCOUNT (user_data);
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-
-  if (priv->connection == NULL)
-    return;
-
-  DEBUG ("(%s) Connection invalidated",
-    empathy_account_get_unique_name (account));
-
-  g_assert (priv->connection == TP_CONNECTION (self));
-
-  empathy_account_free_connection (account);
-
-  g_object_notify (G_OBJECT (account), "connection");
-}
-
-static void
-_empathy_account_set_connection (EmpathyAccount *account,
-    const gchar *path)
-{
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-
-  if (priv->connection != NULL)
-    {
-      const gchar *current;
-
-      current = tp_proxy_get_object_path (priv->connection);
-      if (!tp_strdiff (current, path))
-        return;
-    }
-
-  empathy_account_free_connection (account);
-
-  if (tp_strdiff ("/", path))
-    {
-      GError *error = NULL;
-      priv->connection = tp_connection_new (priv->dbus, NULL, path, &error);
-
-      if (priv->connection == NULL)
-        {
-          DEBUG ("Failed to create a new TpConnection: %s",
-                error->message);
-          g_error_free (error);
-        }
-      else
-        {
-          priv->connection_invalidated_id = g_signal_connect (priv->connection,
-            "invalidated",
-            G_CALLBACK (_empathy_account_connection_invalidated_cb), account);
-
-          DEBUG ("Readying connection for %s", priv->unique_name);
-          /* notify a change in the connection property when it's ready */
-          tp_connection_call_when_ready (priv->connection,
-            empathy_account_connection_ready_cb, account);
-        }
-    }
-
-   g_object_notify (G_OBJECT (account), "connection");
-}
-
-static void
-account_enabled_set_cb (TpProxy *proxy,
-    const GError *error,
-    gpointer user_data,
-    GObject *weak_object)
-{
-  GSimpleAsyncResult *result = user_data;
-
-  if (error != NULL)
-    g_simple_async_result_set_from_error (result, (GError *) error);
-
-  g_simple_async_result_complete (result);
-  g_object_unref (result);
-}
-
-gboolean
-empathy_account_set_enabled_finish (EmpathyAccount *account,
-    GAsyncResult *result,
-    GError **error)
-{
-  if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result),
-          error) ||
-      !g_simple_async_result_is_valid (result, G_OBJECT (account),
-          empathy_account_set_enabled_finish))
-    return FALSE;
-
-  return TRUE;
-}
-
-void
-empathy_account_set_enabled_async (EmpathyAccount *account,
-    gboolean enabled,
-    GAsyncReadyCallback callback,
-    gpointer user_data)
-{
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-  EmpathyAccountManager *acc_manager;
-  GValue value = {0, };
-  GSimpleAsyncResult *result = g_simple_async_result_new (G_OBJECT (account),
-      callback, user_data, empathy_account_set_enabled_finish);
-  char *status = NULL;
-  char *status_message = NULL;
-  TpConnectionPresenceType presence;
-
-  if (priv->enabled == enabled)
-    {
-      g_simple_async_result_complete_in_idle (result);
-      return;
-    }
-
-  if (enabled)
-    {
-      acc_manager = empathy_account_manager_dup_singleton ();
-      presence = empathy_account_manager_get_requested_global_presence
-       (acc_manager, &status, &status_message);
-
-      if (presence != TP_CONNECTION_PRESENCE_TYPE_UNSET)
-       empathy_account_request_presence (account, presence, status,
-            status_message);
-
-      g_object_unref (acc_manager);
-      g_free (status);
-      g_free (status_message);
-    }
-
-  g_value_init (&value, G_TYPE_BOOLEAN);
-  g_value_set_boolean (&value, enabled);
-
-  tp_cli_dbus_properties_call_set (TP_PROXY (priv->account),
-      -1, TP_IFACE_ACCOUNT, "Enabled", &value,
-      account_enabled_set_cb, result, NULL, G_OBJECT (account));
-}
-
-static void
-account_reconnected_cb (TpAccount *proxy,
-    const GError *error,
-    gpointer user_data,
-    GObject *weak_object)
-{
-  GSimpleAsyncResult *result = user_data;
-
-  if (error != NULL)
-    g_simple_async_result_set_from_error (result, (GError *) error);
-
-  g_simple_async_result_complete (result);
-  g_object_unref (result);
-}
-
-gboolean
-empathy_account_reconnect_finish (EmpathyAccount *account,
-    GAsyncResult *result,
-    GError **error)
-{
-  if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result),
-          error) ||
-      !g_simple_async_result_is_valid (result, G_OBJECT (account),
-          empathy_account_reconnect_finish))
-    return FALSE;
-
-  return TRUE;
-}
-
-void
-empathy_account_reconnect_async (EmpathyAccount *account,
-    GAsyncReadyCallback callback,
-    gpointer user_data)
-{
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-
-  GSimpleAsyncResult *result = g_simple_async_result_new (G_OBJECT (account),
-        callback, user_data, empathy_account_reconnect_finish);
-
-  tp_cli_account_call_reconnect (priv->account,
-      -1, account_reconnected_cb, result, NULL, G_OBJECT (account));
-}
-
-static void
-empathy_account_requested_presence_cb (TpProxy *proxy,
-  const GError *error,
-  gpointer user_data,
-  GObject *weak_object)
-{
-  if (error)
-    DEBUG ("Failed to set the requested presence: %s", error->message);
-}
-
-
-void
-empathy_account_request_presence (EmpathyAccount *account,
-  TpConnectionPresenceType type,
-  const gchar *status,
-  const gchar *message)
-{
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-  GValue value = {0, };
-  GValueArray *arr;
-
-  g_value_init (&value, TP_STRUCT_TYPE_SIMPLE_PRESENCE);
-  g_value_take_boxed (&value, dbus_g_type_specialized_construct
-    (TP_STRUCT_TYPE_SIMPLE_PRESENCE));
-  arr = (GValueArray *) g_value_get_boxed (&value);
-
-  g_value_set_uint (arr->values, type);
-  g_value_set_static_string (arr->values + 1, status);
-  g_value_set_static_string (arr->values + 2, message);
-
-  tp_cli_dbus_properties_call_set (TP_PROXY (priv->account),
-    -1,
-    TP_IFACE_ACCOUNT,
-    "RequestedPresence",
-    &value,
-    empathy_account_requested_presence_cb,
-    NULL,
-    NULL,
-    G_OBJECT (account));
-
-  g_value_unset (&value);
-}
-
-static void
-empathy_account_updated_cb (TpAccount *proxy,
-    const gchar **reconnect_required,
-    const GError *error,
-    gpointer user_data,
-    GObject *weak_object)
-{
-  GSimpleAsyncResult *result = G_SIMPLE_ASYNC_RESULT (user_data);
-
-  if (error != NULL)
-    {
-      g_simple_async_result_set_from_error (result, (GError *) error);
-    }
-
-  g_simple_async_result_complete (result);
-  g_object_unref (G_OBJECT (result));
-}
-
-void
-empathy_account_update_settings_async (EmpathyAccount *account,
-  GHashTable *parameters, const gchar **unset_parameters,
-  GAsyncReadyCallback callback, gpointer user_data)
-{
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-  GSimpleAsyncResult *result = g_simple_async_result_new (G_OBJECT (account),
-      callback, user_data, empathy_account_update_settings_finish);
-
-  tp_cli_account_call_update_parameters (priv->account,
-      -1,
-      parameters,
-      unset_parameters,
-      empathy_account_updated_cb,
-      result,
-      NULL,
-      G_OBJECT (account));
-}
-
-gboolean
-empathy_account_update_settings_finish (EmpathyAccount *account,
-  GAsyncResult *result, GError **error)
-{
-  if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result),
-      error))
-    return FALSE;
-
-  g_return_val_if_fail (g_simple_async_result_is_valid (result,
-    G_OBJECT (account), empathy_account_update_settings_finish), FALSE);
-
-  return TRUE;
-}
-
-static void
-account_display_name_set_cb (TpProxy *proxy,
-    const GError *error,
-    gpointer user_data,
-    GObject *weak_object)
-{
-  GSimpleAsyncResult *result = user_data;
-
-  if (error != NULL)
-    g_simple_async_result_set_from_error (result, (GError *) error);
-
-  g_simple_async_result_complete (result);
-  g_object_unref (result);
-}
-
-void
-empathy_account_set_display_name_async (EmpathyAccount *account,
-    const char *display_name,
-    GAsyncReadyCallback callback,
-    gpointer user_data)
-{
-  GSimpleAsyncResult *result;
-  GValue value = {0, };
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-
-  if (display_name == NULL)
-    {
-      g_simple_async_report_error_in_idle (G_OBJECT (account),
-          callback, user_data, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT,
-          _("Can't set an empty display name"));
-      return;
-    }
-
-  result = g_simple_async_result_new (G_OBJECT (account), callback,
-      user_data, empathy_account_set_display_name_finish);
-
-  g_value_init (&value, G_TYPE_STRING);
-  g_value_set_string (&value, display_name);
-
-  tp_cli_dbus_properties_call_set (priv->account, -1, TP_IFACE_ACCOUNT,
-      "DisplayName", &value, account_display_name_set_cb, result, NULL,
-      G_OBJECT (account));
-}
-
-gboolean
-empathy_account_set_display_name_finish (EmpathyAccount *account,
-    GAsyncResult *result, GError **error)
-{
-  if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result),
-          error) ||
-      !g_simple_async_result_is_valid (result, G_OBJECT (account),
-          empathy_account_set_display_name_finish))
-    return FALSE;
-
-  return TRUE;
-}
-
-static void
-account_icon_name_set_cb (TpProxy *proxy,
-    const GError *error,
-    gpointer user_data,
-    GObject *weak_object)
-{
-  GSimpleAsyncResult *result = user_data;
-
-  if (error != NULL)
-    g_simple_async_result_set_from_error (result, (GError *) error);
-
-  g_simple_async_result_complete (result);
-  g_object_unref (result);
-}
-
-void
-empathy_account_set_icon_name_async (EmpathyAccount *account,
-    const char *icon_name,
-    GAsyncReadyCallback callback,
-    gpointer user_data)
-{
-  GSimpleAsyncResult *result;
-  GValue value = {0, };
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-  const char *icon_name_set;
-
-  if (icon_name == NULL)
-    /* settings an empty icon name is allowed */
-    icon_name_set = "";
-  else
-    icon_name_set = icon_name;
-
-  result = g_simple_async_result_new (G_OBJECT (account), callback,
-      user_data, empathy_account_set_icon_name_finish);
-
-  g_value_init (&value, G_TYPE_STRING);
-  g_value_set_string (&value, icon_name_set);
-
-  tp_cli_dbus_properties_call_set (priv->account, -1, TP_IFACE_ACCOUNT,
-      "Icon", &value, account_icon_name_set_cb, result, NULL,
-      G_OBJECT (account));
-}
-
-gboolean
-empathy_account_set_icon_name_finish (EmpathyAccount *account,
-    GAsyncResult *result, GError **error)
-{
-  if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result),
-          error) ||
-      !g_simple_async_result_is_valid (result, G_OBJECT (account),
-          empathy_account_set_icon_name_finish))
-    return FALSE;
-
-  return TRUE;
-}
-
-static void
-empathy_account_remove_cb (TpAccount *proxy,
-    const GError *error,
-    gpointer user_data,
-    GObject *weak_object)
-{
-  GSimpleAsyncResult *result = G_SIMPLE_ASYNC_RESULT (user_data);
-
-  if (error != NULL)
-    {
-      g_simple_async_result_set_from_error (result, (GError *) error);
-    }
-
-  g_simple_async_result_complete (result);
-  g_object_unref (G_OBJECT (result));
-}
-
-void
-empathy_account_remove_async (EmpathyAccount *account,
-  GAsyncReadyCallback callback, gpointer user_data)
-{
-  EmpathyAccountPriv *priv = GET_PRIV (account);
-  GSimpleAsyncResult *result = g_simple_async_result_new (G_OBJECT (account),
-      callback, user_data, empathy_account_remove_finish);
-
-  tp_cli_account_call_remove (priv->account,
-      -1,
-      empathy_account_remove_cb,
-      result,
-      NULL,
-      G_OBJECT (account));
-}
-
-gboolean
-empathy_account_remove_finish (EmpathyAccount *account,
-  GAsyncResult *result, GError **error)
-{
-  if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result),
-      error))
-    return FALSE;
-
-  g_return_val_if_fail (g_simple_async_result_is_valid (result,
-    G_OBJECT (account), empathy_account_update_settings_finish), FALSE);
-
-  return TRUE;
-}
-
-void
-empathy_account_refresh_properties (EmpathyAccount *account)
-{
-  EmpathyAccountPriv *priv;
-
-  g_return_if_fail (EMPATHY_IS_ACCOUNT (account));
-
-  priv = GET_PRIV (account);
-
-  tp_cli_dbus_properties_call_get_all (priv->account, -1,
-    TP_IFACE_ACCOUNT,
-    empathy_account_got_all_cb,
-    NULL,
-    NULL,
-    G_OBJECT (account));
-}
-
diff --git a/libempathy/empathy-account.h b/libempathy/empathy-account.h
deleted file mode 100644 (file)
index 66f8994..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * empathy-account.h - Header for EmpathyAccount
- * Copyright (C) 2009 Collabora Ltd.
- * @author Sjoerd Simons <sjoerd.simons@collabora.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __EMPATHY_ACCOUNT_H__
-#define __EMPATHY_ACCOUNT_H__
-
-#include <glib-object.h>
-#include <gio/gio.h>
-
-#include <telepathy-glib/connection.h>
-
-G_BEGIN_DECLS
-
-typedef struct _EmpathyAccount EmpathyAccount;
-typedef struct _EmpathyAccountClass EmpathyAccountClass;
-
-struct _EmpathyAccountClass {
-    GObjectClass parent_class;
-};
-
-struct _EmpathyAccount {
-    GObject parent;
-    gpointer priv;
-};
-
-GType empathy_account_get_type (void);
-
-/* TYPE MACROS */
-#define EMPATHY_TYPE_ACCOUNT (empathy_account_get_type ())
-#define EMPATHY_ACCOUNT(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), EMPATHY_TYPE_ACCOUNT, EmpathyAccount))
-#define EMPATHY_ACCOUNT_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass), EMPATHY_TYPE_ACCOUNT, EmpathyAccountClass))
-#define EMPATHY_IS_ACCOUNT(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), EMPATHY_TYPE_ACCOUNT))
-#define EMPATHY_IS_ACCOUNT_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), EMPATHY_TYPE_ACCOUNT))
-#define EMPATHY_ACCOUNT_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), EMPATHY_TYPE_ACCOUNT, \
-    EmpathyAccountClass))
-
-gboolean empathy_account_is_just_connected (EmpathyAccount *account);
-TpConnection *empathy_account_get_connection (EmpathyAccount *account);
-TpConnection *empathy_account_get_connection_for_path (EmpathyAccount *account,
-  const gchar *path);
-const gchar *empathy_account_get_unique_name (EmpathyAccount *account);
-const gchar *empathy_account_get_display_name (EmpathyAccount *account);
-
-const gchar *empathy_account_get_connection_manager (EmpathyAccount *account);
-const gchar *empathy_account_get_protocol (EmpathyAccount *account);
-const gchar *empathy_account_get_icon_name (EmpathyAccount *account);
-
-void empathy_account_set_enabled_async (EmpathyAccount *account,
-    gboolean enabled, GAsyncReadyCallback callback, gpointer user_data);
-gboolean empathy_account_set_enabled_finish (EmpathyAccount *account,
-    GAsyncResult *result, GError **error);
-
-void empathy_account_reconnect_async (EmpathyAccount *account,
-    GAsyncReadyCallback callback,
-    gpointer user_data);
-gboolean empathy_account_reconnect_finish (EmpathyAccount *account,
-    GAsyncResult *result,
-    GError **error);
-
-gboolean empathy_account_is_enabled (EmpathyAccount *account);
-
-gboolean empathy_account_is_valid (EmpathyAccount *account);
-gboolean empathy_account_is_ready (EmpathyAccount *account);
-
-void empathy_account_update_settings_async (EmpathyAccount *account,
-  GHashTable *parameters, const gchar **unset_parameters,
-  GAsyncReadyCallback callback, gpointer user_data);
-
-gboolean empathy_account_update_settings_finish (EmpathyAccount *account,
-  GAsyncResult *result, GError **error);
-
-void empathy_account_remove_async (EmpathyAccount *account,
-  GAsyncReadyCallback callback, gpointer user_data);
-gboolean empathy_account_remove_finish (EmpathyAccount *account,
-  GAsyncResult *result, GError **error);
-
-void empathy_account_set_display_name_async (EmpathyAccount *account,
-    const gchar *display_name, GAsyncReadyCallback callback,
-    gpointer user_data);
-gboolean empathy_account_set_display_name_finish (EmpathyAccount *account,
-    GAsyncResult *result, GError **error);
-
-void empathy_account_set_icon_name_async (EmpathyAccount *account,
-    const gchar *icon_name, GAsyncReadyCallback callback,
-    gpointer user_data);
-gboolean empathy_account_set_icon_name_finish (EmpathyAccount *account,
-    GAsyncResult *result, GError **error);
-
-EmpathyAccount *empathy_account_new (TpDBusDaemon *bus_daemon,
-    const gchar *unique_name);
-
-void empathy_account_request_presence (EmpathyAccount *account,
-  TpConnectionPresenceType type, const gchar *status, const gchar *message);
-
-const GHashTable *empathy_account_get_parameters (EmpathyAccount *account);
-
-void empathy_account_refresh_properties (EmpathyAccount *account);
-
-
-G_END_DECLS
-
-#endif /* #ifndef __EMPATHY_ACCOUNT_H__*/