diff options
author | Łukasz Stelmach <l.stelmach@samsung.com> | 2018-04-26 10:03:50 +0200 |
---|---|---|
committer | Łukasz Stelmach <l.stelmach@samsung.com> | 2018-05-09 12:13:36 +0200 |
commit | b55d6debed3c3f149ac15603b0a6eff0a833cbf9 (patch) | |
tree | 6130b00c90ff112f9497cb286919ec9f1f5ded8e | |
parent | fa770a1520134c0271bf3839c87b9719ffba026a (diff) | |
download | aul-1-sandbox/lstelmach/proc-exclude-sync.tar.gz aul-1-sandbox/lstelmach/proc-exclude-sync.tar.bz2 aul-1-sandbox/lstelmach/proc-exclude-sync.zip |
wip: ProcExclude signal/methodsandbox/lstelmach/proc-exclude-sync
Change-Id: I0cf01288b25498cf8aa5ee0b3f882b192ac55cc0
-rw-r--r-- | include/app_signal.h | 1 | ||||
-rw-r--r-- | src/app_signal.c | 79 |
2 files changed, 67 insertions, 13 deletions
diff --git a/include/app_signal.h b/include/app_signal.h index 9df5b23b..aab4cb54 100644 --- a/include/app_signal.h +++ b/include/app_signal.h @@ -46,6 +46,7 @@ #define TEP_UNMOUNT_METHOD "Unmount" #define TEP_IS_MOUNTED_METHOD "IsMounted" +#define RESOURCED_DBUS_BUS_NAME "org.tizen.resourced" #define RESOURCED_PROC_PATH "/Org/Tizen/ResourceD/Process" #define RESOURCED_PROC_INTERFACE "org.tizen.resourced.process" #define RESOURCED_PROC_STATUS_SIGNAL "ProcStatus" diff --git a/src/app_signal.c b/src/app_signal.c index d9b29c36..18cbd34d 100644 --- a/src/app_signal.c +++ b/src/app_signal.c @@ -298,10 +298,12 @@ API int aul_listen_app_status_signal(int (*func)(int, int, void *), return AUL_R_OK; } -static int __system_dbus_send_signal(const char *object_path, +static int __system_dbus_send_message(const char *destination, + const char *object_path, const char *interface_name, - const char *signal_name, - GVariant *parameters) + const char *message_name, + GVariant *parameters, + gboolean sync) { GError *err = NULL; GDBusConnection *conn; @@ -314,16 +316,40 @@ static int __system_dbus_send_signal(const char *object_path, return AUL_R_ERROR; } - if (g_dbus_connection_emit_signal(conn, - NULL, - object_path, - interface_name, - signal_name, - parameters, - &err) == FALSE) { - _E("g_dbus_connection_emit_signal() is failed. %s", - err->message); - ret = AUL_R_ERROR; + if (sync) { + GVariant *result; + result = g_dbus_connection_call_sync(conn, + destination, + object_path, + interface_name, + message_name, + parameters, + NULL, + G_DBUS_CALL_FLAGS_NONE, + -1, + NULL, + &err); + if (result) { + g_variant_unref(result); + ret = AUL_R_OK; + } else { + ret = AUL_R_ERROR; + } + } else { + ret = (g_dbus_connection_emit_signal(conn, + NULL, + object_path, + interface_name, + message_name, + parameters, + &err) == FALSE) ? AUL_R_ERROR : AUL_R_OK; + + } + + if (ret == AUL_R_ERROR) { + _E("%s is failed. %s", + sync ? "g_dbus_connection_call_sync()" : "g_dbus_connection_emit_signal()", + err->message); goto end; } @@ -342,6 +368,33 @@ end: return ret; } +static inline int __system_dbus_send_call(const char *destination, + const char *object_path, + const char *interface_name, + const char *signal_name, + GVariant *parameters) +{ + return __system_dbus_send_message(destination, + object_path, + interface_name, + signal_name, + parameters, + TRUE); +} + +static inline int __system_dbus_send_signal(const char *object_path, + const char *interface_name, + const char *signal_name, + GVariant *parameters) +{ + return __system_dbus_send_message(NULL, + object_path, + interface_name, + signal_name, + parameters, + FALSE); +} + API int aul_update_freezer_status(int pid, const char *type) { int ret; |