diff options
author | Marco Barisione <marco.barisione@collabora.co.uk> | 2013-05-08 22:14:35 +0800 |
---|---|---|
committer | Marco Barisione <marco.barisione@collabora.co.uk> | 2013-08-20 18:03:05 +0800 |
commit | 53a376be8d68d95c30cb66495d42d3c18947473f (patch) | |
tree | 456a2dd22c0e58f81396aad2dca31c96e678ea57 /libempathy | |
parent | eaa41abfebc3fbf9c2d6a673940e36a4af008cac (diff) | |
download | gsoc2013-empathy-53a376be8d68d95c30cb66495d42d3c18947473f.tar gsoc2013-empathy-53a376be8d68d95c30cb66495d42d3c18947473f.tar.gz gsoc2013-empathy-53a376be8d68d95c30cb66495d42d3c18947473f.tar.bz2 gsoc2013-empathy-53a376be8d68d95c30cb66495d42d3c18947473f.tar.lz gsoc2013-empathy-53a376be8d68d95c30cb66495d42d3c18947473f.tar.xz gsoc2013-empathy-53a376be8d68d95c30cb66495d42d3c18947473f.tar.zst gsoc2013-empathy-53a376be8d68d95c30cb66495d42d3c18947473f.zip |
connection-managers: move from Empathy to tp-account-widgets
https://bugzilla.gnome.org/show_bug.cgi?id=699492
Diffstat (limited to 'libempathy')
-rw-r--r-- | libempathy/Makefile.am | 2 | ||||
-rw-r--r-- | libempathy/empathy-connection-managers.c | 349 | ||||
-rw-r--r-- | libempathy/empathy-connection-managers.h | 87 |
3 files changed, 0 insertions, 438 deletions
diff --git a/libempathy/Makefile.am b/libempathy/Makefile.am index d7a638859..13678a252 100644 --- a/libempathy/Makefile.am +++ b/libempathy/Makefile.am @@ -32,7 +32,6 @@ libempathy_headers = \ empathy-chatroom-manager.h \ empathy-chatroom.h \ empathy-client-factory.h \ - empathy-connection-managers.h \ empathy-connection-aggregator.h \ empathy-contact-groups.h \ empathy-contact.h \ @@ -65,7 +64,6 @@ libempathy_handwritten_source = \ empathy-chatroom-manager.c \ empathy-chatroom.c \ empathy-client-factory.c \ - empathy-connection-managers.c \ empathy-connection-aggregator.c \ empathy-contact-groups.c \ empathy-contact.c \ diff --git a/libempathy/empathy-connection-managers.c b/libempathy/empathy-connection-managers.c deleted file mode 100644 index b94ac1253..000000000 --- a/libempathy/empathy-connection-managers.c +++ /dev/null @@ -1,349 +0,0 @@ -/* - * empathy-connection-managers.c - Source for EmpathyConnectionManagers - * 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 "config.h" -#include "empathy-connection-managers.h" - -#include "empathy-utils.h" - -#define DEBUG_FLAG EMPATHY_DEBUG_OTHER -#include "empathy-debug.h" - -static GObject *managers = NULL; - -G_DEFINE_TYPE(EmpathyConnectionManagers, empathy_connection_managers, - G_TYPE_OBJECT) - -/* signal enum */ -enum -{ - UPDATED, - LAST_SIGNAL -}; - -static guint signals[LAST_SIGNAL] = {0}; - -/* properties */ -enum { - PROP_READY = 1 -}; - -#define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyConnectionManagers) - - -/* private structure */ -typedef struct _EmpathyConnectionManagersPriv - EmpathyConnectionManagersPriv; - -struct _EmpathyConnectionManagersPriv -{ - gboolean dispose_has_run; - gboolean ready; - - GList *cms; - - TpDBusDaemon *dbus; -}; - -static void -empathy_connection_managers_init (EmpathyConnectionManagers *obj) -{ - EmpathyConnectionManagersPriv *priv = - G_TYPE_INSTANCE_GET_PRIVATE ((obj), \ - EMPATHY_TYPE_CONNECTION_MANAGERS, EmpathyConnectionManagersPriv); - - obj->priv = priv; - - priv->dbus = tp_dbus_daemon_dup (NULL); - g_assert (priv->dbus != NULL); - - empathy_connection_managers_update (obj); - - /* allocate any data required by the object here */ -} - -static void empathy_connection_managers_dispose (GObject *object); - -static GObject * -empathy_connection_managers_constructor (GType type, - guint n_construct_params, - GObjectConstructParam *construct_params) -{ - if (managers != NULL) - return g_object_ref (managers); - - managers = - G_OBJECT_CLASS (empathy_connection_managers_parent_class)->constructor - (type, n_construct_params, construct_params); - - g_object_add_weak_pointer (managers, (gpointer) &managers); - - return managers; -} - - - -static void -empathy_connection_managers_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - EmpathyConnectionManagers *self = EMPATHY_CONNECTION_MANAGERS (object); - EmpathyConnectionManagersPriv *priv = GET_PRIV (self); - - 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_connection_managers_class_init ( - EmpathyConnectionManagersClass *empathy_connection_managers_class) -{ - GObjectClass *object_class = - G_OBJECT_CLASS (empathy_connection_managers_class); - - g_type_class_add_private (empathy_connection_managers_class, sizeof - (EmpathyConnectionManagersPriv)); - - object_class->constructor = empathy_connection_managers_constructor; - object_class->dispose = empathy_connection_managers_dispose; - object_class->get_property = empathy_connection_managers_get_property; - - g_object_class_install_property (object_class, PROP_READY, - g_param_spec_boolean ("ready", - "Ready", - "Whether the connection manager information is ready to be used", - FALSE, - G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); - - signals[UPDATED] = g_signal_new ("updated", - G_TYPE_FROM_CLASS (object_class), - G_SIGNAL_RUN_LAST, - 0, NULL, NULL, - g_cclosure_marshal_generic, - G_TYPE_NONE, 0); -} - -static void -empathy_connection_managers_free_cm_list (EmpathyConnectionManagers *self) -{ - EmpathyConnectionManagersPriv *priv = GET_PRIV (self); - GList *l; - - for (l = priv->cms ; l != NULL ; l = g_list_next (l)) - { - g_object_unref (l->data); - } - g_list_free (priv->cms); - - priv->cms = NULL; -} - -static void -empathy_connection_managers_dispose (GObject *object) -{ - EmpathyConnectionManagers *self = EMPATHY_CONNECTION_MANAGERS (object); - EmpathyConnectionManagersPriv *priv = GET_PRIV (self); - - if (priv->dispose_has_run) - return; - - priv->dispose_has_run = TRUE; - - if (priv->dbus != NULL) - g_object_unref (priv->dbus); - priv->dbus = NULL; - - empathy_connection_managers_free_cm_list (self); - - /* release any references held by the object here */ - - if (G_OBJECT_CLASS (empathy_connection_managers_parent_class)->dispose) - G_OBJECT_CLASS (empathy_connection_managers_parent_class)->dispose (object); -} - -EmpathyConnectionManagers * -empathy_connection_managers_dup_singleton (void) -{ - return EMPATHY_CONNECTION_MANAGERS ( - g_object_new (EMPATHY_TYPE_CONNECTION_MANAGERS, NULL)); -} - -gboolean -empathy_connection_managers_is_ready (EmpathyConnectionManagers *self) -{ - EmpathyConnectionManagersPriv *priv = GET_PRIV (self); - return priv->ready; -} - -static void -empathy_connection_managers_listed_cb (GObject *source, - GAsyncResult *result, - gpointer user_data) -{ - TpWeakRef *wr = user_data; - GError *error = NULL; - EmpathyConnectionManagers *self = tp_weak_ref_dup_object (wr); - GList *cms, *l; - EmpathyConnectionManagersPriv *priv; - - if (self == NULL) - { - tp_weak_ref_destroy (wr); - return; - } - - priv = GET_PRIV (self); - - empathy_connection_managers_free_cm_list (self); - - cms = tp_list_connection_managers_finish (result, &error); - if (error != NULL) - { - DEBUG ("Failed to get connection managers: %s", error->message); - g_error_free (error); - goto out; - } - - for (l = cms ; l != NULL; l = g_list_next (l)) - { - TpConnectionManager *cm = l->data; - - /* only list cms that didn't hit errors */ - if (tp_proxy_is_prepared (cm, TP_CONNECTION_MANAGER_FEATURE_CORE)) - priv->cms = g_list_prepend (priv->cms, g_object_ref (cm)); - } - -out: - if (!priv->ready) - { - priv->ready = TRUE; - g_object_notify (G_OBJECT (self), "ready"); - } - - g_signal_emit (self, signals[UPDATED], 0); - g_object_unref (self); - tp_weak_ref_destroy (wr); -} - -void -empathy_connection_managers_update (EmpathyConnectionManagers *self) -{ - EmpathyConnectionManagersPriv *priv = GET_PRIV (self); - - tp_list_connection_managers_async (priv->dbus, - empathy_connection_managers_listed_cb, - tp_weak_ref_new (self, NULL, NULL)); -} - -GList * -empathy_connection_managers_get_cms (EmpathyConnectionManagers *self) -{ - EmpathyConnectionManagersPriv *priv = GET_PRIV (self); - - return priv->cms; -} - -TpConnectionManager * -empathy_connection_managers_get_cm (EmpathyConnectionManagers *self, - const gchar *cm) -{ - EmpathyConnectionManagersPriv *priv = GET_PRIV (self); - GList *l; - - for (l = priv->cms ; l != NULL; l = g_list_next (l)) - { - TpConnectionManager *c = TP_CONNECTION_MANAGER (l->data); - - if (!tp_strdiff (tp_connection_manager_get_name (c), cm)) - return c; - } - - return NULL; -} - -guint -empathy_connection_managers_get_cms_num (EmpathyConnectionManagers *self) -{ - EmpathyConnectionManagersPriv *priv; - - g_return_val_if_fail (EMPATHY_IS_CONNECTION_MANAGERS (self), 0); - - priv = GET_PRIV (self); - - return g_list_length (priv->cms); -} - -static void -notify_ready_cb (EmpathyConnectionManagers *self, - GParamSpec *spec, - GSimpleAsyncResult *result) -{ - g_simple_async_result_complete (result); - g_object_unref (result); -} - -void -empathy_connection_managers_prepare_async ( - EmpathyConnectionManagers *self, - GAsyncReadyCallback callback, - gpointer user_data) -{ - EmpathyConnectionManagersPriv *priv = GET_PRIV (self); - GSimpleAsyncResult *result; - - result = g_simple_async_result_new (G_OBJECT (managers), - callback, user_data, empathy_connection_managers_prepare_finish); - - if (priv->ready) - { - g_simple_async_result_complete_in_idle (result); - g_object_unref (result); - return; - } - - g_signal_connect (self, "notify::ready", G_CALLBACK (notify_ready_cb), - result); -} - -gboolean -empathy_connection_managers_prepare_finish ( - EmpathyConnectionManagers *self, - GAsyncResult *result, - GError **error) -{ - GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result); - - g_return_val_if_fail (g_simple_async_result_is_valid (result, - G_OBJECT (self), empathy_connection_managers_prepare_finish), FALSE); - - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - - return TRUE; -} diff --git a/libempathy/empathy-connection-managers.h b/libempathy/empathy-connection-managers.h deleted file mode 100644 index 0ed20c934..000000000 --- a/libempathy/empathy-connection-managers.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * empathy-connection-managers.h - Header for EmpathyConnectionManagers - * 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_CONNECTION_MANAGERS_H__ -#define __EMPATHY_CONNECTION_MANAGERS_H__ - -#include <glib-object.h> -#include <gio/gio.h> -#include <telepathy-glib/telepathy-glib.h> - -G_BEGIN_DECLS - -typedef struct _EmpathyConnectionManagers EmpathyConnectionManagers; -typedef struct _EmpathyConnectionManagersClass EmpathyConnectionManagersClass; - -struct _EmpathyConnectionManagersClass { - GObjectClass parent_class; -}; - -struct _EmpathyConnectionManagers { - GObject parent; - gpointer priv; -}; - -GType empathy_connection_managers_get_type (void); - -/* TYPE MACROS */ -#define EMPATHY_TYPE_CONNECTION_MANAGERS \ - (empathy_connection_managers_get_type ()) -#define EMPATHY_CONNECTION_MANAGERS(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), EMPATHY_TYPE_CONNECTION_MANAGERS, \ - EmpathyConnectionManagers)) -#define EMPATHY_CONNECTION_MANAGERS_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), EMPATHY_TYPE_CONNECTION_MANAGERS, \ - EmpathyConnectionManagersClass)) -#define EMPATHY_IS_CONNECTION_MANAGERS(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), EMPATHY_TYPE_CONNECTION_MANAGERS)) -#define EMPATHY_IS_CONNECTION_MANAGERS_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), EMPATHY_TYPE_CONNECTION_MANAGERS)) -#define EMPATHY_CONNECTION_MANAGERS_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), EMPATHY_TYPE_CONNECTION_MANAGERS, \ - EmpathyConnectionManagersClass)) - -EmpathyConnectionManagers *empathy_connection_managers_dup_singleton (void); -gboolean empathy_connection_managers_is_ready ( - EmpathyConnectionManagers *managers); - -void empathy_connection_managers_update (EmpathyConnectionManagers *managers); - -GList * empathy_connection_managers_get_cms ( - EmpathyConnectionManagers *managers); -guint empathy_connection_managers_get_cms_num - (EmpathyConnectionManagers *managers); - -TpConnectionManager *empathy_connection_managers_get_cm ( - EmpathyConnectionManagers *managers, const gchar *cm); - -void empathy_connection_managers_prepare_async ( - EmpathyConnectionManagers *managers, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean empathy_connection_managers_prepare_finish ( - EmpathyConnectionManagers *managers, - GAsyncResult *result, - GError **error); - -G_END_DECLS - -#endif /* #ifndef __EMPATHY_CONNECTION_MANAGERS_H__*/ |