[Telepathy-commits] [telepathy-mission-control/master] Move code into a separate function
Alberto Mardegan
alberto.mardegan at nokia.com
Fri Jan 9 04:07:08 PST 2009
---
src/mcd-dispatcher.c | 36 ++++++++++++++++++++----------------
1 files changed, 20 insertions(+), 16 deletions(-)
diff --git a/src/mcd-dispatcher.c b/src/mcd-dispatcher.c
index 741bf73..a6bd64c 100644
--- a/src/mcd-dispatcher.c
+++ b/src/mcd-dispatcher.c
@@ -1044,6 +1044,25 @@ match_filters (McdChannel *channel, GList *filters)
return matched;
}
+static McdClient *
+get_default_handler (McdDispatcher *dispatcher, McdChannel *channel)
+{
+ GHashTableIter iter;
+ McdClient *client;
+
+ g_hash_table_iter_init (&iter, dispatcher->priv->clients);
+ while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &client))
+ {
+ if (!client->proxy ||
+ !(client->interfaces & MCD_CLIENT_HANDLER))
+ continue;
+
+ if (match_filters (channel, client->handler_filters))
+ return client;
+ }
+ return NULL;
+}
+
static void
handle_channels_cb (TpProxy *proxy, const GError *error, gpointer user_data,
GObject *weak_object)
@@ -2989,8 +3008,6 @@ _mcd_dispatcher_add_request (McdDispatcher *dispatcher, McdAccount *account,
GValue v_account = { 0, };
GValue v_preferred_handler = { 0, };
GPtrArray *requests;
- GHashTableIter iter;
- McdClient *client;
McdRemoveRequestData *rrd;
g_return_if_fail (MCD_IS_DISPATCHER (dispatcher));
@@ -3000,20 +3017,7 @@ _mcd_dispatcher_add_request (McdDispatcher *dispatcher, McdAccount *account,
priv = dispatcher->priv;
- g_hash_table_iter_init (&iter, priv->clients);
- while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &client))
- {
- if (!client->proxy ||
- !(client->interfaces & MCD_CLIENT_HANDLER))
- continue;
-
- if (match_filters (channel, client->handler_filters))
- {
- handler = client;
- break;
- }
- }
-
+ handler = get_default_handler (dispatcher, channel);
if (!handler)
{
/* No handler found. But it's possible that by the time that the
--
1.5.6.5
More information about the Telepathy-commits
mailing list