Refactored connman signal callback to generic D-Bus signal callback. 76/10976/1
authorOssama Othman <ossama.othman@intel.com>
Tue, 8 Oct 2013 15:00:51 +0000 (08:00 -0700)
committerOssama Othman <ossama.othman@intel.com>
Tue, 15 Oct 2013 20:31:16 +0000 (13:31 -0700)
Change-Id: I575f74a095a9b4fb0fb496935b384ab72c20a2f7
Signed-off-by: Ossama Othman <ossama.othman@intel.com>
include/settingsd/Makefile.am
include/settingsd/dbus_signal_callback.hpp [moved from plugins/connman/signal_callback.hpp with 58% similarity]
lib/Makefile.am
lib/dbus_signal_callback.cpp [moved from plugins/connman/signal_callback.cpp with 64% similarity]
plugins/connman/Makefile.am
plugins/connman/connman.cpp
plugins/connman/connman.hpp
plugins/connman/connman_manager.cpp

index eb43239..0eb9d72 100644 (file)
@@ -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
similarity index 58%
rename from plugins/connman/signal_callback.hpp
rename to include/settingsd/dbus_signal_callback.hpp
index 3c781a3..7abea8b 100644 (file)
@@ -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 @<ossama.othman@@intel.com@>
  *
  * 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 <settingsd/settings_api.hpp>
 
 #include <gio/gio.h>
 
 
-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:
index f0247e1..68cf706 100644 (file)
@@ -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
 
similarity index 64%
rename from plugins/connman/signal_callback.cpp
rename to lib/dbus_signal_callback.cpp
index 899707c..690e8fd 100644 (file)
@@ -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 @<ossama.othman@@intel.com@>
  *
  * Boston, MA  02110-1301  USA
  */
 
-#include "signal_callback.hpp"
-
+#include <settingsd/dbus_signal_callback.hpp>
 #include <settingsd/event_callback.hpp>
 
 #include <json-glib/json-glib.h>
 
 
 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<event_callback *>(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?
index 7f4f452..0b8b08f 100644 (file)
@@ -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))
index 2b410a6..2367310 100644 (file)
  */
 
 #include "connman.hpp"
-#include "signal_callback.hpp"
 
-#include <settingsd/reverse_lock.hpp>
+#include <settingsd/glib_traits.hpp>
+#include <settingsd/smart_ptr.hpp>
+#include <settingsd/dbus_signal_callback.hpp>
 
 #include <cstring>
 #include <string>
@@ -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);
 }
index 60deb31..bdde0f5 100644 (file)
@@ -28,8 +28,6 @@
 #ifndef IVI_SETTINGS_CONNMAN_HPP
 #define IVI_SETTINGS_CONNMAN_HPP
 
-#include <settingsd/glib_traits.hpp>
-#include <settingsd/smart_ptr.hpp>
 #include <settingsd/event_callback.hpp>
 
 #include <gio/gio.h>
index 594671f..a6449d7 100644 (file)
@@ -25,8 +25,8 @@
  */
 
 #include "connman_manager.hpp"
-#include "signal_callback.hpp"
 
+#include <settingsd/dbus_signal_callback.hpp>
 #include <settingsd/glib_traits.hpp>
 #include <settingsd/smart_ptr.hpp>
 
@@ -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()