From 80adffbdb0c794c7077bd047b5abd86ac5d20c88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?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=UTF-8 Content-Transfer-Encoding: 8bit Patch by: José Roberto de Souza SVN revision: 80693 --- legacy/edbus/src/lib/edbus_connection.h | 1 + legacy/edbus/src/lib/edbus_core.c | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/legacy/edbus/src/lib/edbus_connection.h b/legacy/edbus/src/lib/edbus_connection.h index 5cbf76d24b..0b2b44a1f7 100644 --- a/legacy/edbus/src/lib/edbus_connection.h +++ b/legacy/edbus/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/legacy/edbus/src/lib/edbus_core.c b/legacy/edbus/src/lib/edbus_core.c index 067422ce08..0d3969a694 100644 --- a/legacy/edbus/src/lib/edbus_core.c +++ b/legacy/edbus/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; }