diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2013-08-29 16:48:40 +0100 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2013-09-04 13:28:23 +0100 |
commit | ea78c344fce0373188ac5549f664da0a6de1f500 (patch) | |
tree | 441df96904b834232aab98dcf2a5038f54b32608 | |
parent | 3ec7b1947bf5c595edc1f2329aa6ce7b9feda816 (diff) | |
download | telepathy-mission-control-ea78c344fce0373188ac5549f664da0a6de1f500.tar.gz |
_mcd_master_account_replace_transport: inline into caller and simplify
There's only one transport plugin, it only has one transport, and
its state is basically boolean, so we can delete a lot of code.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=68712
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
-rw-r--r-- | src/kludge-transport.c | 23 | ||||
-rw-r--r-- | src/mcd-account.c | 19 | ||||
-rw-r--r-- | src/mcd-master-priv.h | 2 | ||||
-rw-r--r-- | src/mcd-master.c | 53 | ||||
-rw-r--r-- | src/mcd-transport.c | 21 | ||||
-rw-r--r-- | src/mcd-transport.h | 5 |
6 files changed, 13 insertions, 110 deletions
diff --git a/src/kludge-transport.c b/src/kludge-transport.c index 664b8c39..5af099aa 100644 --- a/src/kludge-transport.c +++ b/src/kludge-transport.c @@ -120,28 +120,6 @@ mcd_kludge_transport_get_transport_name ( return "i love the internet"; } -static McdTransportStatus -mcd_kludge_transport_get_transport_status ( - McdTransportPlugin *plugin, - McdTransport *transport) -{ - McdKludgeTransport *self = MCD_KLUDGE_TRANSPORT (plugin); - gboolean online; - - g_return_val_if_fail (MCD_IS_KLUDGE_TRANSPORT (plugin), - MCD_TRANSPORT_STATUS_DISCONNECTED); - g_return_val_if_fail (plugin == (McdTransportPlugin *) transport, - MCD_TRANSPORT_STATUS_DISCONNECTED); - - online = mcd_connectivity_monitor_is_online (self->priv->minotaur); - DEBUG ("we are allegedly %s", online ? "online" : "offline"); - - if (online) - return MCD_TRANSPORT_STATUS_CONNECTED; - else - return MCD_TRANSPORT_STATUS_DISCONNECTED; -} - static void transport_iface_init ( gpointer g_iface, @@ -151,7 +129,6 @@ transport_iface_init ( klass->get_transports = mcd_kludge_transport_get_transports; klass->get_transport_name = mcd_kludge_transport_get_transport_name; - klass->get_transport_status = mcd_kludge_transport_get_transport_status; } static McdTransportPlugin * diff --git a/src/mcd-account.c b/src/mcd-account.c index d3edfc0d..e0e713b4 100644 --- a/src/mcd-account.c +++ b/src/mcd-account.c @@ -230,7 +230,6 @@ void _mcd_account_maybe_autoconnect (McdAccount *account) { McdAccountPrivate *priv; - McdMaster *master; g_return_if_fail (MCD_IS_ACCOUNT (account)); priv = account->priv; @@ -240,12 +239,20 @@ _mcd_account_maybe_autoconnect (McdAccount *account) return; } - master = mcd_master_get_default (); - - if (!_mcd_master_account_replace_transport (master, account)) + if (_mcd_account_needs_dispatch (account)) { - DEBUG ("%s conditions not satisfied", priv->unique_name); - return; + DEBUG ("Always-dispatchable account %s needs no transport", + priv->unique_name); + } + else if (mcd_connectivity_monitor_is_online (priv->connectivity)) + { + DEBUG ("Account %s has connectivity, connecting", + priv->unique_name); + } + else + { + DEBUG ("Account %s needs connectivity, not connecting", + priv->unique_name); } DEBUG ("connecting account %s", priv->unique_name); diff --git a/src/mcd-master-priv.h b/src/mcd-master-priv.h index ab42c8a8..bb491f29 100644 --- a/src/mcd-master-priv.h +++ b/src/mcd-master-priv.h @@ -32,8 +32,6 @@ G_BEGIN_DECLS G_GNUC_INTERNAL -gboolean _mcd_master_account_replace_transport (McdMaster *master, - McdAccount *account); McdManager *_mcd_master_lookup_manager (McdMaster *master, const gchar *unique_name); diff --git a/src/mcd-master.c b/src/mcd-master.c index 7a1f4ba1..77182f1e 100644 --- a/src/mcd-master.c +++ b/src/mcd-master.c @@ -384,59 +384,6 @@ mcd_master_register_transport (McdMaster *master, g_ptr_array_add (master->priv->transport_plugins, transport_plugin); } -gboolean -_mcd_master_account_replace_transport (McdMaster *master, - McdAccount *account) -{ - McdMasterPrivate *priv = master->priv; - gboolean connected = FALSE; - const gchar *name; - const guint n_plugins = priv->transport_plugins->len; - guint i; - - g_return_val_if_fail (MCD_IS_ACCOUNT (account), FALSE); - - /* no transport plugins, decision is always "go for it" */ - if (n_plugins == 0) - return TRUE; - - name = mcd_account_get_unique_name (account); - - if (_mcd_account_needs_dispatch (account)) - { - DEBUG ("Always-dispatchable account %s needs no transport", name); - return TRUE; - } - - DEBUG ("Checking %s [%u plugins]", name, n_plugins); - - for (i = 0; !connected && i < priv->transport_plugins->len; i++) - { - McdTransportPlugin *plugin; - const GList *transports; - - plugin = g_ptr_array_index (priv->transport_plugins, i); - transports = mcd_transport_plugin_get_transports (plugin); - - while (transports != NULL) - { - McdTransport *transport = transports->data; - McdTransportStatus status = - mcd_transport_get_status (plugin, transport); - - transports = g_list_next (transports); - - if (status != MCD_TRANSPORT_STATUS_CONNECTED) - continue; - - connected = TRUE; - break; - } - } - - return connected; -} - /* Milliseconds to wait for Connectivity coming back up before exiting MC */ #define EXIT_COUNTDOWN_TIME 5000 diff --git a/src/mcd-transport.c b/src/mcd-transport.c index 5e29d9ee..15aee236 100644 --- a/src/mcd-transport.c +++ b/src/mcd-transport.c @@ -139,24 +139,3 @@ mcd_transport_get_name (McdTransportPlugin *plugin, McdTransport *transport) g_return_val_if_fail (iface->get_transport_name != NULL, NULL); return iface->get_transport_name (plugin, transport); } - -/** - * mcd_transport_get_status: - * @plugin: the #McdTransportPlugin. - * @transport: a #McdTransport. - * - * Gets the status of @transport. - * - * Returns: the #McdTransportStatus of the transport. - */ -McdTransportStatus -mcd_transport_get_status (McdTransportPlugin *plugin, McdTransport *transport) -{ - McdTransportPluginIface *iface; - - iface = MCD_TRANSPORT_PLUGIN_GET_IFACE (plugin); - g_return_val_if_fail (iface->get_transport_status != NULL, - MCD_TRANSPORT_STATUS_DISCONNECTED); - return iface->get_transport_status (plugin, transport); -} - diff --git a/src/mcd-transport.h b/src/mcd-transport.h index a7e5bc34..0f35d1ef 100644 --- a/src/mcd-transport.h +++ b/src/mcd-transport.h @@ -55,9 +55,6 @@ struct _McdTransportPluginIface const GList * (*get_transports) (McdTransportPlugin *plugin); const gchar * (*get_transport_name) (McdTransportPlugin *plugin, McdTransport *transport); - McdTransportStatus (*get_transport_status) (McdTransportPlugin *plugin, - McdTransport *transport); - /* signals */ void (*status_changed) (McdTransportPlugin *plugin, McdTransport *transport, McdTransportStatus status); @@ -69,8 +66,6 @@ const GList *mcd_transport_plugin_get_transports (McdTransportPlugin *plugin); const gchar *mcd_transport_get_name (McdTransportPlugin *plugin, McdTransport *transport); -McdTransportStatus mcd_transport_get_status (McdTransportPlugin *plugin, - McdTransport *transport); G_END_DECLS #endif /* __MCD_TRANSPORT_PLUGIN_H__ */ |