From 20ea1b4bd1815c3029d2eedfc929ffc42aceca99 Mon Sep 17 00:00:00 2001 From: Ossama Othman Date: Tue, 8 Oct 2013 08:00:51 -0700 Subject: [PATCH] Refactored connman signal callback to generic D-Bus signal callback. Change-Id: I575f74a095a9b4fb0fb496935b384ab72c20a2f7 Signed-off-by: Ossama Othman --- include/settingsd/Makefile.am | 3 +- .../settingsd/dbus_signal_callback.hpp | 35 +++++++++++++-------- lib/Makefile.am | 3 +- .../dbus_signal_callback.cpp | 36 ++++++---------------- plugins/connman/Makefile.am | 4 +-- plugins/connman/connman.cpp | 7 +++-- plugins/connman/connman.hpp | 2 -- plugins/connman/connman_manager.cpp | 12 ++++++-- 8 files changed, 51 insertions(+), 51 deletions(-) rename plugins/connman/signal_callback.hpp => include/settingsd/dbus_signal_callback.hpp (58%) rename plugins/connman/signal_callback.cpp => lib/dbus_signal_callback.cpp (64%) diff --git a/include/settingsd/Makefile.am b/include/settingsd/Makefile.am index eb43239..0eb9d72 100644 --- a/include/settingsd/Makefile.am +++ b/include/settingsd/Makefile.am @@ -28,4 +28,5 @@ pkginclude_HEADERS = \ glib_traits.hpp \ json_glib_traits.hpp \ smart_ptr.hpp \ - reverse_lock.hpp + reverse_lock.hpp \ + dbus_signal_callback.hpp diff --git a/plugins/connman/signal_callback.hpp b/include/settingsd/dbus_signal_callback.hpp similarity index 58% rename from plugins/connman/signal_callback.hpp rename to include/settingsd/dbus_signal_callback.hpp index 3c781a3..7abea8b 100644 --- a/plugins/connman/signal_callback.hpp +++ b/include/settingsd/dbus_signal_callback.hpp @@ -1,7 +1,7 @@ /** - * @file signal_callback.hpp + * @file dbus_signal_callback.hpp * - * @brief Connman signal callback. + * @brief D-Bus signal callback. * * @author Ossama Othman @ * @@ -24,22 +24,31 @@ * Boston, MA 02110-1301 USA */ -#ifndef IVI_SETTINGS_CONNMAN_SIGNAL_CALLBACK_HPP -#define IVI_SETTINGS_CONNMAN_SIGNAL_CALLBACK_HPP +#ifndef IVI_SETTINGS_DBUS_SIGNAL_CALLBACK_HPP +#define IVI_SETTINGS_DBUS_SIGNAL_CALLBACK_HPP + +#include #include -extern "C" -void on_connman_signal(GDBusConnection * connection, - char const * sender_name, - char const * object_path, - char const * interface_name, - char const * signal_name, - GVariant * parameters, - gpointer user_data); +namespace ivi +{ + namespace settings + { + extern "C" SETTINGS_API + void on_dbus_signal(GDBusConnection * connection, + char const * sender_name, + char const * object_path, + char const * interface_name, + char const * signal_name, + GVariant * parameters, + gpointer user_data); + } +} + -#endif /* IVI_SETTINGS_CONNMAN_SIGNAL_CALLBACK_HPP */ +#endif /* IVI_SETTINGS_DBUS_SIGNAL_CALLBACK_HPP */ // Local Variables: diff --git a/lib/Makefile.am b/lib/Makefile.am index f0247e1..68cf706 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -27,7 +27,8 @@ libsettings_la_SOURCES = \ registrar.cpp \ send_callback.cpp \ event_callback.cpp \ - response_callback.cpp + response_callback.cpp \ + dbus_signal_callback.cpp libsettings_la_CPPFLAGS = -DSETTINGS_BUILDING_DLL -I$(top_srcdir)/include diff --git a/plugins/connman/signal_callback.cpp b/lib/dbus_signal_callback.cpp similarity index 64% rename from plugins/connman/signal_callback.cpp rename to lib/dbus_signal_callback.cpp index 899707c..690e8fd 100644 --- a/plugins/connman/signal_callback.cpp +++ b/lib/dbus_signal_callback.cpp @@ -1,7 +1,7 @@ /** - * @file signal_callback.cpp + * @file dbus_signal_callback.cpp * - * @brief Connman signal callback. + * @brief D-Bus signal callback. * * @author Ossama Othman @ * @@ -24,46 +24,30 @@ * Boston, MA 02110-1301 USA */ -#include "signal_callback.hpp" - +#include #include #include void -on_connman_signal(GDBusConnection * /* connection */, - char const * /* sender_name */, - char const * object_path, - char const * interface_name, - char const * signal_name, - GVariant * parameters, - gpointer user_data) +ivi::settings::on_dbus_signal(GDBusConnection * /* connection */, + char const * /* sender_name */, + char const * object_path, + char const * interface_name, + char const * signal_name, + GVariant * parameters, + gpointer user_data) { - using ivi::settings::event_callback; event_callback * const e = static_cast(user_data); // Send event to clients. - - /** - * @todo Fix type == nullptr. - */ e->send_event( object_path, interface_name, signal_name, [parameters](JsonBuilder * builder) { - // Serialize the changed services into a JSON tree. - // The ServicesChanged signal parameters are: - // - // array{object, dict}, array{object}) - // - // where "object" is the D-Bus object path, and "dict" is a - // dictionary of object-specific properties. The first - // parameter is list of changed services. The second is a - // list of removed services. - /** * @todo Can @c json_gvariant_serialize() ever return a * @c nullptr? diff --git a/plugins/connman/Makefile.am b/plugins/connman/Makefile.am index 7f4f452..0b8b08f 100644 --- a/plugins/connman/Makefile.am +++ b/plugins/connman/Makefile.am @@ -42,7 +42,6 @@ connman_la_SOURCES = \ ethernet.cpp \ wifi.cpp \ registration.cpp \ - signal_callback.cpp \ $(BUILT_SOURCES) connman_la_CXXFLAGS = \ $(IVI_SETTINGS_PLUGIN_CXXFLAGS) \ @@ -69,8 +68,7 @@ noinst_HEADERS = \ bluetooth.hpp \ clock.hpp \ ethernet.hpp \ - wifi.hpp \ - signal_callback.hpp + wifi.hpp dbus_codegen_verbose = $(dbus_codegen_verbose_$(V)) dbus_codegen_verbose_ = $(dbus_codegen_verbose_$(AM_DEFAULT_VERBOSITY)) diff --git a/plugins/connman/connman.cpp b/plugins/connman/connman.cpp index 2b410a6..2367310 100644 --- a/plugins/connman/connman.cpp +++ b/plugins/connman/connman.cpp @@ -25,9 +25,10 @@ */ #include "connman.hpp" -#include "signal_callback.hpp" -#include +#include +#include +#include #include #include @@ -76,7 +77,7 @@ ivi::settings::connman::connman(char const * interface, path, nullptr, G_DBUS_SIGNAL_FLAGS_NONE, - on_connman_signal, + on_dbus_signal, &event_callback_, nullptr); } diff --git a/plugins/connman/connman.hpp b/plugins/connman/connman.hpp index 60deb31..bdde0f5 100644 --- a/plugins/connman/connman.hpp +++ b/plugins/connman/connman.hpp @@ -28,8 +28,6 @@ #ifndef IVI_SETTINGS_CONNMAN_HPP #define IVI_SETTINGS_CONNMAN_HPP -#include -#include #include #include diff --git a/plugins/connman/connman_manager.cpp b/plugins/connman/connman_manager.cpp index 594671f..a6449d7 100644 --- a/plugins/connman/connman_manager.cpp +++ b/plugins/connman/connman_manager.cpp @@ -25,8 +25,8 @@ */ #include "connman_manager.hpp" -#include "signal_callback.hpp" +#include #include #include @@ -48,10 +48,18 @@ ivi::settings::connman_manager::connman_manager( connman_.object_path(), nullptr, G_DBUS_SIGNAL_FLAGS_NONE, - on_connman_signal, + on_dbus_signal, &event_callback_, nullptr)) { + // The ServicesChanged signal parameters are: + // + // array{object, dict}, array{object}) + // + // where "object" is the D-Bus object path, and "dict" is a + // dictionary of object-specific properties. The first parameter is + // list of changed services. The second is a list of removed + // services. } ivi::settings::connman_manager::~connman_manager() -- 2.7.4