aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy
diff options
context:
space:
mode:
authorXavier Claessens <xclaesse@src.gnome.org>2008-04-11 21:10:54 +0800
committerXavier Claessens <xclaesse@src.gnome.org>2008-04-11 21:10:54 +0800
commit419d09c664b17192447a027c5f5da66a8853120f (patch)
tree12fca77fe1e1273c78ffd5fc30e4711bbd5925ea /libempathy
parenteb5dd07b401c157588592445c641f94403cdd601 (diff)
downloadgsoc2013-empathy-419d09c664b17192447a027c5f5da66a8853120f.tar
gsoc2013-empathy-419d09c664b17192447a027c5f5da66a8853120f.tar.gz
gsoc2013-empathy-419d09c664b17192447a027c5f5da66a8853120f.tar.bz2
gsoc2013-empathy-419d09c664b17192447a027c5f5da66a8853120f.tar.lz
gsoc2013-empathy-419d09c664b17192447a027c5f5da66a8853120f.tar.xz
gsoc2013-empathy-419d09c664b17192447a027c5f5da66a8853120f.tar.zst
gsoc2013-empathy-419d09c664b17192447a027c5f5da66a8853120f.zip
Chandler and Filter only dispatch ready TpChannel
svn path=/trunk/; revision=902
Diffstat (limited to 'libempathy')
-rw-r--r--libempathy/empathy-chandler.c39
-rw-r--r--libempathy/empathy-filter.c49
-rw-r--r--libempathy/empathy-filter.h4
3 files changed, 38 insertions, 54 deletions
diff --git a/libempathy/empathy-chandler.c b/libempathy/empathy-chandler.c
index 9dd6bfdb0..8e2637718 100644
--- a/libempathy/empathy-chandler.c
+++ b/libempathy/empathy-chandler.c
@@ -24,8 +24,8 @@
#include <dbus/dbus-glib.h>
#include <telepathy-glib/dbus.h>
-#include <libtelepathy/tp-conn.h>
-#include <libtelepathy/tp-chan.h>
+#include <telepathy-glib/connection.h>
+#include <telepathy-glib/channel.h>
#include "empathy-chandler.h"
#include "empathy-debug.h"
@@ -62,9 +62,9 @@ empathy_chandler_class_init (EmpathyChandlerClass *klass)
G_SIGNAL_RUN_LAST,
0,
NULL, NULL,
- _empathy_marshal_VOID__OBJECT_OBJECT,
+ g_cclosure_marshal_VOID__OBJECT,
G_TYPE_NONE,
- 2, TELEPATHY_CONN_TYPE, TELEPATHY_CHAN_TYPE);
+ 1, TP_TYPE_CHANNEL);
}
static void
@@ -126,32 +126,25 @@ empathy_chandler_handle_channel (EmpathyChandler *chandler,
guint handle,
GError **error)
{
- TpChan *tp_chan;
- TpConn *tp_conn;
-
- tp_conn = tp_conn_new_without_connect (tp_get_bus (),
- bus_name,
- connection,
- NULL,
- error);
- if (!tp_conn) {
- return FALSE;
+ TpChannel *chan;
+ TpConnection *conn;
+ static TpDBusDaemon *daemon = NULL;
+
+ if (!daemon) {
+ daemon = tp_dbus_daemon_new (tp_get_bus ());
}
- tp_chan = tp_chan_new (tp_get_bus(),
- bus_name,
- channel,
- channel_type,
- handle_type,
- handle);
+ conn = tp_connection_new (daemon, bus_name, connection, NULL);
+ chan = tp_channel_new (conn, channel, channel_type, handle_type, handle, NULL);
+ tp_channel_run_until_ready (chan, NULL, NULL);
empathy_debug (DEBUG_DOMAIN, "New channel to be handled: "
"type=%s handle=%d",
channel_type, handle);
- g_signal_emit (chandler, signals[NEW_CHANNEL], 0, tp_conn, tp_chan);
+ g_signal_emit (chandler, signals[NEW_CHANNEL], 0, chan);
- g_object_unref (tp_chan);
- g_object_unref (tp_conn);
+ g_object_unref (chan);
+ g_object_unref (conn);
return TRUE;
}
diff --git a/libempathy/empathy-filter.c b/libempathy/empathy-filter.c
index e5e31235d..84dd4eb66 100644
--- a/libempathy/empathy-filter.c
+++ b/libempathy/empathy-filter.c
@@ -21,10 +21,8 @@
#include <config.h>
-#include <dbus/dbus-glib.h>
-
#include <telepathy-glib/dbus.h>
-#include <libtelepathy/tp-conn.h>
+#include <telepathy-glib/connection.h>
#include "empathy-filter.h"
#include "empathy-debug.h"
@@ -78,9 +76,9 @@ empathy_filter_class_init (EmpathyFilterClass *klass)
G_SIGNAL_RUN_LAST,
0,
NULL, NULL,
- _empathy_marshal_VOID__OBJECT_OBJECT,
+ g_cclosure_marshal_VOID__OBJECT,
G_TYPE_NONE,
- 2, TELEPATHY_CONN_TYPE, TELEPATHY_CHAN_TYPE);
+ 1, TP_TYPE_CHANNEL);
signals[PROCESS] =
g_signal_new ("process",
@@ -177,24 +175,24 @@ empathy_filter_new (const gchar *bus_name,
void
empathy_filter_process (EmpathyFilter *filter,
- TpChan *tp_chan,
+ TpChannel *channel,
gboolean process)
{
EmpathyFilterPriv *priv;
guint id;
g_return_if_fail (EMPATHY_IS_FILTER (filter));
- g_return_if_fail (TELEPATHY_IS_CHAN (tp_chan));
+ g_return_if_fail (TP_IS_CHANNEL (channel));
priv = GET_PRIV (filter);
- id = GPOINTER_TO_UINT (g_hash_table_lookup (priv->table, tp_chan));
+ id = GPOINTER_TO_UINT (g_hash_table_lookup (priv->table, channel));
g_return_if_fail (id != 0);
empathy_debug (DEBUG_DOMAIN, "Processing channel id %d: %s",
id, process ? "Yes" : "No");
g_signal_emit (filter, signals[PROCESS], 0, id, process);
- g_hash_table_remove (priv->table, tp_chan);
+ g_hash_table_remove (priv->table, channel);
}
static gboolean
@@ -208,37 +206,30 @@ empathy_filter_filter_channel (EmpathyFilter *filter,
guint id,
GError **error)
{
- EmpathyFilterPriv *priv;
- TpChan *tp_chan;
- TpConn *tp_conn;
+ EmpathyFilterPriv *priv;
+ TpChannel *chan;
+ TpConnection *conn;
+ static TpDBusDaemon *daemon = NULL;
priv = GET_PRIV (filter);
- tp_conn = tp_conn_new_without_connect (tp_get_bus (),
- bus_name,
- connection,
- NULL,
- error);
- if (!tp_conn) {
- return FALSE;
+ if (!daemon) {
+ daemon = tp_dbus_daemon_new (tp_get_bus ());
}
+ conn = tp_connection_new (daemon, bus_name, connection, NULL);
+ chan = tp_channel_new (conn, channel, channel_type, handle_type, handle, NULL);
+ tp_channel_run_until_ready (chan, NULL, NULL);
- tp_chan = tp_chan_new (tp_get_bus(),
- bus_name,
- channel,
- channel_type,
- handle_type,
- handle);
-
- g_hash_table_insert (priv->table, tp_chan, GUINT_TO_POINTER (id));
+ g_hash_table_insert (priv->table, chan, GUINT_TO_POINTER (id));
empathy_debug (DEBUG_DOMAIN, "New channel to be filtred: "
"type=%s handle=%d id=%d",
channel_type, handle, id);
- g_signal_emit (filter, signals[NEW_CHANNEL], 0, tp_conn, tp_chan);
- g_object_unref (tp_conn);
+ g_signal_emit (filter, signals[NEW_CHANNEL], 0, chan);
+
+ g_object_unref (conn);
return TRUE;
}
diff --git a/libempathy/empathy-filter.h b/libempathy/empathy-filter.h
index 4156c640f..bfd031e7e 100644
--- a/libempathy/empathy-filter.h
+++ b/libempathy/empathy-filter.h
@@ -24,7 +24,7 @@
#include <glib.h>
-#include <libtelepathy/tp-chan.h>
+#include <telepathy-glib/channel.h>
G_BEGIN_DECLS
@@ -54,7 +54,7 @@ EmpathyFilter *empathy_filter_new (const gchar *bus_name,
guint priority,
guint flags);
void empathy_filter_process (EmpathyFilter *filter,
- TpChan *tp_chan,
+ TpChannel *channel,
gboolean process);
G_END_DECLS