From 25a760926252f6cace43ea0695b5a9bfd9e728e9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Date: Tue, 11 Dec 2012 19:50:29 +0000 Subject: [PATCH] edbus: Add Disconnected event in connection MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Patch by: José Roberto de Souza SVN revision: 80693 --- src/lib/edbus_connection.h | 1 + src/lib/edbus_core.c | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/lib/edbus_connection.h b/src/lib/edbus_connection.h index 5cbf76d..0b2b44a 100644 --- a/src/lib/edbus_connection.h +++ b/src/lib/edbus_connection.h @@ -101,6 +101,7 @@ EAPI void *edbus_connection_data_del(EDBus_Connection *conn, const c typedef enum { EDBUS_CONNECTION_EVENT_DEL, + EDBUS_CONNECTION_DISCONNECTED, EDBUS_CONNECTION_EVENT_LAST /**< sentinel, not a real event type */ } EDBus_Connection_Event_Type; diff --git a/src/lib/edbus_core.c b/src/lib/edbus_core.c index 067422c..0d3969a 100644 --- a/src/lib/edbus_core.c +++ b/src/lib/edbus_core.c @@ -908,6 +908,14 @@ edbus_connection_setup(EDBus_Connection *conn) conn); } +static void +_disconnected(void *data, const EDBus_Message *msg) +{ + EDBus_Connection *conn = data; + _edbus_connection_event_callback_call(conn, EDBUS_CONNECTION_DISCONNECTED, + NULL); +} + static EDBus_Connection * _connection_get(EDBus_Connection_Type type) { @@ -935,6 +943,9 @@ _connection_get(EDBus_Connection_Type type) EINA_MAGIC_SET(conn, EDBUS_CONNECTION_MAGIC); conn->names = eina_hash_string_superfast_new(NULL); + edbus_signal_handler_add(conn, NULL, DBUS_PATH_LOCAL, DBUS_INTERFACE_LOCAL, + "Disconnected", _disconnected, conn); + DBG("Returned new connection at %p", conn); return conn; } -- 2.7.4