Add EmitSignal for send event signal
authorIlho Kim <ilho159.kim@samsung.com>
Thu, 21 May 2020 02:06:35 +0000 (11:06 +0900)
committerSangyoon Jang <jeremy.jang@samsung.com>
Mon, 25 May 2020 04:28:15 +0000 (13:28 +0900)
Signed-off-by: Ilho Kim <ilho159.kim@samsung.com>
src/theme/dbus/request_broker.cc
src/theme/dbus/request_broker.h

index 47b16cf..d23bb23 100644 (file)
@@ -20,8 +20,8 @@
 #include "theme/utils/logging.h"
 
 #define THEME_MANAGER_DBUS_NAME "org.tizen.theme_manager"
-#define THEME_MANAGER_OBJECT_PATH "/org/tizen/theme_manager"
 #define THEME_MANAGER_INTERFACE_NAME "org.tizen.theme_manager"
+#define THEME_MANAGER_OBJECT_PATH "/org/tizen/theme_manager"
 
 
 namespace ttm {
@@ -87,6 +87,32 @@ int RequestBroker::RegisterRequestFilter(RequestFilter filter) {
   return 0;
 }
 
+bool RequestBroker::EmitSignal(std::string signal_name,
+    Command cmd, tizen_base::Bundle data) {
+  GError* err = nullptr;
+  gboolean result = TRUE;
+  GVariant *serialized = nullptr;
+
+  serialized = g_variant_new("(is)", static_cast<int>(cmd),
+      reinterpret_cast<char*>(data.ToRaw().first.get()));
+
+  result = g_dbus_connection_emit_signal(connection_,
+                                         nullptr,
+                                         THEME_MANAGER_OBJECT_PATH,
+                                         THEME_MANAGER_INTERFACE_NAME,
+                                         signal_name.c_str(), serialized, &err);
+  if (result == FALSE) {
+    LOG(ERROR) << "g_dbus_connection_emit_signal() is failed";
+    if (err != nullptr) {
+      LOG(ERROR) << "g_dbus_connection_emit_signal() err : " <<  err->message;
+      g_error_free(err);
+    }
+  } else {
+    LOG(INFO) << "Successfully emit signal";
+  }
+  return result;
+}
+
 bool RequestBroker::Listen() {
   const GDBusInterfaceVTable interface_vtable = {
     OnReceiveDbusMethod,
index 48178aa..5539081 100644 (file)
@@ -33,6 +33,8 @@ class RequestBroker {
   GDBusConnection* GetConnection();
 
   int RegisterRequestFilter(RequestFilter filter);
+  bool EmitSignal(std::string signal_name,
+      Command cmd, tizen_base::Bundle data);
   bool Listen();
   bool Subscribe();
   tizen_base::Bundle SendData(Command cmd, tizen_base::Bundle&);