Change function name
[platform/core/system/libsyscommon.git] / src / libgdbus / dbus-system.h
old mode 100755 (executable)
new mode 100644 (file)
index 126e12a..cbcc9be
@@ -1,7 +1,7 @@
 /*
- * deviced
+ * libsyscommon
  *
- * Copyright (c) 2012 - 2013 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the License);
  * you may not use this file except in compliance with the License.
@@ -16,9 +16,8 @@
  * limitations under the License.
  */
 
-
-#ifndef __DBUS_H__
-#define __DBUS_H__
+#ifndef __DBUS_SYSTEM_H__
+#define __DBUS_SYSTEM_H__
 
 #include <glib.h>
 #include <gio/gio.h>
 #include <stdarg.h>
 #include <assert.h>
 
-/*
- * Template
- *
-#define XXX_BUS_NAME                        "org.tizen.system.XXX"
-#define XXX_OBJECT_PATH                     "/Org/Tizen/System/XXX"
-#define XXX_INTERFACE_NAME                  XXX_BUS_NAME
-#define XXX_PATH_YYY                        XXX_OBJECT_PATH"/YYY"
-#define XXX_INTERFACE_YYY                   XXX_INTERFACE_NAME".YYY"
-#define XXX_SIGNAL_ZZZ                      "ZZZ"
-#define XXX_METHOD_ZZZ                      "ZZZ"
- */
-
-/*******************************************************************************
- *
- * DBus daemon
- *
- ******************************************************************************/
-#define DBUS_BUS_NAME                       "org.freedesktop.DBus"
-#define DBUS_OBJECT_PATH                    "/org/freedesktop/DBus"
-#define DBUS_INTERFACE_NAME                 DBUS_BUS_NAME
-
-/*******************************************************************************
- *
- * System daemon (systemd)
- *
- ******************************************************************************/
-#define SYSTEMD_DBUS_PATH                            "/org/freedesktop/systemd1"
-#define SYSTEMD_DBUS_DEST                            "org.freedesktop.systemd1"
-#define SYSTEMD_DBUS_IFACE_MANAGER                   SYSTEMD_DBUS_DEST ".Manager"
-#define SYSTEMD_DBUS_SIGNAL_SYSTEM_STARTUP_FINISHED  "StartupFinished"
-
-/*******************************************************************************
- *
- * Device daemon (deviced)
- *
- ******************************************************************************/
-#define DEVICED_BUS_NAME                    "org.tizen.system.deviced"
-#define DEVICED_OBJECT_PATH                 "/Org/Tizen/System/DeviceD"
-#define DEVICED_INTERFACE_NAME              DEVICED_BUS_NAME
-/* Core service: get/set device status operations about device */
-#define DEVICED_PATH_CORE                   DEVICED_OBJECT_PATH"/Core"
-#define DEVICED_INTERFACE_CORE              DEVICED_INTERFACE_NAME".core"
-/* Display service: start/stop display(pm), get/set brightness operations about display */
-#define DEVICED_PATH_DISPLAY                DEVICED_OBJECT_PATH"/Display"
-#define DEVICED_INTERFACE_DISPLAY           DEVICED_INTERFACE_NAME".display"
-/* Pass service: start/stop pass operations about pass */
-#define DEVICED_PATH_PASS                   DEVICED_OBJECT_PATH"/Pass"
-#define DEVICED_INTERFACE_PASS              DEVICED_INTERFACE_NAME".pass"
-/* Power service: set resetkey disable operations about power */
-#define DEVICED_PATH_POWER                  DEVICED_OBJECT_PATH"/Power"
-#define DEVICED_INTERFACE_POWER             DEVICED_INTERFACE_NAME".power"
-/* Low Power service: start/stop low power mode */
-#define DEVICED_PATH_LOWPOWER              DEVICED_OBJECT_PATH"/LowPower"
-#define DEVICED_INTERFACE_LOWPOWER         DEVICED_INTERFACE_NAME".lowpower"
-/* Reboot service: request reboot operation */
-#define DEVICED_PATH_REBOOT                 DEVICED_OBJECT_PATH"/Reboot"
-#define DEVICED_INTERFACE_REBOOT            DEVICED_INTERFACE_NAME".reboot"
-/* Storage service: get storage size operatioins about storage */
-#define DEVICED_PATH_STORAGE                DEVICED_OBJECT_PATH"/Storage"
-#define DEVICED_INTERFACE_STORAGE           DEVICED_INTERFACE_NAME".storage"
-/* ODE service: request ode popup result operatioins about storage */
-#define DEVICED_PATH_SDE                    DEVICED_OBJECT_PATH"/Sde"
-#define DEVICED_INTERFACE_SDE               DEVICED_INTERFACE_NAME".sde"
-#define DEVICED_PATH_ODE                    DEVICED_OBJECT_PATH"/Ode"
-#define DEVICED_INTERFACE_ODE               DEVICED_INTERFACE_NAME".ode"
-/* Lowmem service: get critical low status operations about Lowmem */
-#define DEVICED_PATH_LOWMEM                 DEVICED_OBJECT_PATH"/Lowmem"
-#define DEVICED_INTERFACE_LOWMEM            DEVICED_INTERFACE_NAME".lowmem"
-/* Poweroff service: get power off status operations about Poweroff */
-#define DEVICED_PATH_POWEROFF               DEVICED_OBJECT_PATH"/PowerOff"
-#define DEVICED_INTERFACE_POWEROFF          DEVICED_INTERFACE_NAME".PowerOff"
-/* Led service: play/stop led operations about led */
-#define DEVICED_PATH_LED                    DEVICED_OBJECT_PATH"/Led"
-#define DEVICED_INTERFACE_LED               DEVICED_INTERFACE_NAME".Led"
-/* MMC service: mount/unmount/format mmc operations about mmc */
-#define DEVICED_PATH_MMC                    DEVICED_OBJECT_PATH"/Mmc"
-#define DEVICED_INTERFACE_MMC               DEVICED_INTERFACE_NAME".Mmc"
-/* Process service: operations about process */
-#define DEVICED_PATH_PROCESS                DEVICED_OBJECT_PATH"/Process"
-#define DEVICED_INTERFACE_PROCESS           DEVICED_INTERFACE_NAME".Process"
-/* Key service: operations about key */
-#define DEVICED_PATH_KEY                    DEVICED_OBJECT_PATH"/Key"
-#define DEVICED_INTERFACE_KEY               DEVICED_INTERFACE_NAME".Key"
-/* USB client service: change usb connection mode */
-#define DEVICED_PATH_USB                    DEVICED_OBJECT_PATH"/Usb"
-#define DEVICED_INTERFACE_USB               DEVICED_INTERFACE_NAME".Usb"
-/* USB start/stop service: operations about usb start/stop */
-#define DEVICED_PATH_USB_CONTROL            DEVICED_OBJECT_PATH"/UsbControl"
-#define DEVICED_INTERFACE_USB_CONTROL       DEVICED_INTERFACE_NAME".UsbControl"
-/* USB host service: operations about usb start/stop */
-#define DEVICED_PATH_USBHOST                DEVICED_OBJECT_PATH"/Usbhost"
-#define DEVICED_INTERFACE_USBHOST           DEVICED_INTERFACE_NAME".Usbhost"
-/* Sysnoti service */
-#define DEVICED_PATH_SYSNOTI                DEVICED_OBJECT_PATH"/SysNoti"
-#define DEVICED_INTERFACE_SYSNOTI           DEVICED_INTERFACE_NAME".SysNoti"
-/* ExtCon service */
-#define DEVICED_PATH_EXTCON                 DEVICED_OBJECT_PATH"/ExtCon"
-#define DEVICED_INTERFACE_EXTCON            DEVICED_INTERFACE_NAME".ExtCon"
-/* Battery service */
-#define DEVICED_PATH_BATTERY                DEVICED_OBJECT_PATH"/Battery"
-#define DEVICED_INTERFACE_BATTERY           DEVICED_INTERFACE_NAME".Battery"
-/* Time service */
-#define DEVICED_PATH_TIME                   DEVICED_OBJECT_PATH"/Time"
-#define DEVICED_INTERFACE_TIME              DEVICED_INTERFACE_NAME".Time"
-/* IR service */
-#define DEVICED_PATH_IR                     DEVICED_OBJECT_PATH"/Ir"
-#define DEVICED_INTERFACE_IR                DEVICED_INTERFACE_NAME".ir"
-/* USB_HOST_TEST service */
-#define DEVICED_PATH_USB_HOST_TEST          DEVICED_OBJECT_PATH"/UsbHostTest"
-#define DEVICED_INTERFACE_USB_HOST_TEST     DEVICED_INTERFACE_NAME".UsbHostTest"
-
-/* HDMICEC service: status check about gpio */
-#define DEVICED_PATH_HDMICEC                    DEVICED_OBJECT_PATH"/HdmiCec"
-#define DEVICED_INTERFACE_HDMICEC               DEVICED_INTERFACE_NAME".HdmiCec"
-
-/* Tzip service: Archive file system */
-#define DEVICED_PATH_TZIP                    DEVICED_OBJECT_PATH"/Tzip"
-#define DEVICED_INTERFACE_TZIP               DEVICED_INTERFACE_NAME".Tzip"
-
-
-/*******************************************************************************
- *
- * Storage daemon (storaged)
- *
- ******************************************************************************/
-#define STORAGED_BUS_NAME                    "org.tizen.system.storage"
-#define STORAGED_OBJECT_PATH                 "/Org/Tizen/System/Storage"
-#define STORAGED_INTERFACE_NAME              STORAGED_BUS_NAME
-
-/* Block service */
-#define STORAGED_PATH_BLOCK                  STORAGED_OBJECT_PATH"/Block"
-#define STORAGED_PATH_BLOCK_MANAGER          STORAGED_PATH_BLOCK"/Manager"
-#define STORAGED_INTERFACE_BLOCK_MANAGER     STORAGED_INTERFACE_NAME".BlockManager"
-
-/* Storage service: get storage size operatioins about storage */
-#define STORAGED_PATH_STORAGE                STORAGED_OBJECT_PATH"/Storage"
-#define STORAGED_INTERFACE_STORAGE           STORAGED_INTERFACE_NAME".storage"
-
-/* Lowmem service: get critical low status operations about Lowmem */
-#define STORAGED_PATH_LOWMEM                 STORAGED_OBJECT_PATH"/Lowmem"
-#define STORAGED_INTERFACE_LOWMEM            STORAGED_INTERFACE_NAME".lowmem"
-
-
-/*******************************************************************************
- *
- * Vibrator daemon
- *
- ******************************************************************************/
-#define VIBRATOR_BUS_NAME                   "org.tizen.system.vibrator"
-#define VIBRATOR_OBJECT_PATH                "/Org/Tizen/System/Vibrator"
-#define VIBRATOR_INTERFACE_NAME              VIBRATOR_BUS_NAME
-/* Core service: get/set device status operations about device */
-#define VIBRATOR_PATH_CORE                   VIBRATOR_OBJECT_PATH"/Core"
-#define VIBRATOR_INTERFACE_CORE              VIBRATOR_INTERFACE_NAME".core"
-
-#define VIBRATOR_PATH_HAPTIC                 VIBRATOR_OBJECT_PATH"/Haptic"
-#define VIBRATOR_INTERFACE_HAPTIC            VIBRATOR_INTERFACE_NAME".haptic"
-
-/*
- * Resource daemon
- */
-#define RESOURCED_BUS_NAME                  "org.tizen.resourced"
-#define RESOURCED_OBJECT_PATH               "/Org/Tizen/ResourceD"
-#define RESOURCED_INTERFACE_NAME            RESOURCED_BUS_NAME
-
-#define RESOURCED_PATH_PROCESS              RESOURCED_OBJECT_PATH"/Process"
-#define RESOURCED_INTERFACE_PROCESS         RESOURCED_INTERFACE_NAME".process"
-#define RESOURCED_METHOD_ACTIVE             "Active"
-
-#define RESOURCED_PATH_FREEZER              RESOURCED_OBJECT_PATH"/Freezer"
-#define RESOURCED_INTERFACE_FREEZER         RESOURCED_INTERFACE_NAME".freezer"
-
-#define RESOURCED_PATH_SLUGGISH              RESOURCED_OBJECT_PATH"/Sluggish"
-#define RESOURCED_INTERFACE_SLUGGISH         RESOURCED_INTERFACE_NAME".sluggish"
-#define RESOURCED_SIGNAL_SLUGGISH                      "SluggishDetected"
-
-#define RESOURCED_PATH_LOGGING              RESOURCED_OBJECT_PATH"/Logging"
-#define RESOURCED_INTERFACE_LOGGING         RESOURCED_INTERFACE_NAME".logging"
-/*
- * Popup launcher
- */
-#define POPUP_BUS_NAME                      "org.tizen.system.popup"
-#define POPUP_OBJECT_PATH                   "/Org/Tizen/System/Popup"
-#define POPUP_INTERFACE_NAME                POPUP_BUS_NAME
-/* LED */
-#define POPUP_PATH_LED                      POPUP_OBJECT_PATH"/Led"
-#define POPUP_INTERFACE_LED                 POPUP_INTERFACE_NAME".Led"
-/* System */
-#define POPUP_PATH_SYSTEM                   POPUP_OBJECT_PATH"/System"
-#define POPUP_INTERFACE_SYSTEM              POPUP_INTERFACE_NAME".System"
-/* Notification */
-#define POPUP_PATH_NOTI                     POPUP_OBJECT_PATH"/Noti"
-#define POPUP_INTERFACE_NOTI                POPUP_INTERFACE_NAME".Noti"
-/* Power key longpress */
-#define POPUP_PATH_POWERKEY                 POPUP_OBJECT_PATH"/Powerkey"
-#define POPUP_INTERFACE_POWERKEY            POPUP_INTERFACE_NAME".Powerkey"
-/* Low battery */
-#define POPUP_PATH_LOWBAT                   POPUP_OBJECT_PATH"/Lowbat"
-#define POPUP_INTERFACE_LOWBAT              POPUP_INTERFACE_NAME".Lowbat"
-/* Low memory */
-#define POPUP_PATH_LOWMEM                   POPUP_OBJECT_PATH"/Lowmem"
-#define POPUP_INTERFACE_LOWMEM              POPUP_INTERFACE_NAME".Lowmem"
-/* MMC */
-#define POPUP_PATH_MMC                      POPUP_OBJECT_PATH"/Mmc"
-#define POPUP_INTERFACE_MMC                 POPUP_INTERFACE_NAME".Mmc"
-/* USB */
-#define POPUP_PATH_USB                      POPUP_OBJECT_PATH"/Usb"
-#define POPUP_INTERFACE_USB                 POPUP_INTERFACE_NAME".Usb"
-/* USB otg */
-#define POPUP_PATH_USBOTG                   POPUP_OBJECT_PATH"/Usbotg"
-#define POPUP_INTERFACE_USBOTG              POPUP_INTERFACE_NAME".Usbotg"
-/* USB host */
-#define POPUP_PATH_USBHOST                  POPUP_OBJECT_PATH"/Usbhost"
-#define POPUP_INTERFACE_USBHOST             POPUP_INTERFACE_NAME".Usbhost"
-/* System */
-#define POPUP_PATH_SYSTEM                   POPUP_OBJECT_PATH"/System"
-#define POPUP_INTERFACE_SYSTEM              POPUP_INTERFACE_NAME".System"
-/* Overheat */
-#define POPUP_PATH_OVERHEAT                 POPUP_OBJECT_PATH"/Overheat"
-#define POPUP_INTERFACE_OVERHEAT            POPUP_INTERFACE_NAME".Overheat"
-/* Crash */
-#define POPUP_PATH_CRASH                    POPUP_OBJECT_PATH"/Crash"
-#define POPUP_INTERFACE_CRASH               POPUP_INTERFACE_NAME".Crash"
-/* Servant */
-#define POPUP_PATH_SERVANT                  POPUP_OBJECT_PATH"/Servant"
-#define POPUP_IFACE_SERVANT                 POPUP_INTERFACE_NAME".Servant"
-
-#define POPUP_PATH_APP                      POPUP_OBJECT_PATH"/Apps"
-#define POPUP_IFACE_APP                     POPUP_BUS_NAME".Apps"
-
-#define POPUP_METHOD_LAUNCH                 "PopupLaunch"
-#define POPUP_METHOD_TERMINATE              "AppTerminateByPid"
-#define POPUP_KEY_CONTENT                   "_SYSPOPUP_CONTENT_"
-
-/*
- * Crash daemon
- */
-#define CRASHD_BUS_NAME                     "org.tizen.system.crashd"
-#define CRASHD_OBJECT_PATH                  "/Org/Tizen/System/CrashD"
-#define CRASHD_INTERFACE_NAME               CRASHD_BUS_NAME
-
-#define CRASHD_PATH_CRASH                   CRASHD_OBJECT_PATH"/Crash"
-#define CRASHD_INTERFACE_CRASH              CRASHD_INTERFACE_NAME".Crash"
-
-/*
- * Device Manager Policy Popup
- */
-#define DEVICEMANAGER_BUS_NAME                     "org.tizen.DevicePolicyManager"
-#define DEVICEMANAGER_OBJECT_PATH                  "/org/tizen/DevicePolicyManager"
-#define DEVICEMANAGER_INTERFACE_NAME               DEVICEMANAGER_BUS_NAME
-
-#define DEVICEMANAGER_PATH_POPUP                   DEVICEMANAGER_OBJECT_PATH"/Syspopup"
-#define DEVICEMANAGER_INTERFACE_POPUP              DEVICEMANAGER_INTERFACE_NAME".Syspopup"
-
-
-/***************************************************************/
-/* Experimental for Specific device - contact to deviced owner */
-/***************************************************************/
-
-/* Hall service: get hall status operations about hall */
-#define DEVICED_PATH_HALL                   DEVICED_OBJECT_PATH"/Hall"
-#define DEVICED_INTERFACE_HALL              DEVICED_INTERFACE_NAME".hall"
-/* Cpu service: operations about cpu */
-#define DEVICED_PATH_CPU                    DEVICED_OBJECT_PATH"/Cpu"
-#define DEVICED_INTERFACE_CPU               DEVICED_INTERFACE_NAME".Cpu"
-/* PmQos service: operations about pmqos */
-#define DEVICED_PATH_PMQOS                  DEVICED_OBJECT_PATH"/PmQos"
-#define DEVICED_INTERFACE_PMQOS             DEVICED_INTERFACE_NAME".PmQos"
-/* Apps service */
-#define DEVICED_PATH_APPS               DEVICED_OBJECT_PATH"/Apps"
-#define DEVICED_INTERFACE_APPS           DEVICED_INTERFACE_NAME".Apps"
-/* GPIO service: status check about gpio */
-#define DEVICED_PATH_GPIO                    DEVICED_OBJECT_PATH"/Gpio"
-#define DEVICED_INTERFACE_GPIO               DEVICED_INTERFACE_NAME".Gpio"
-/* Board service */
-#define DEVICED_PATH_BOARD                DEVICED_OBJECT_PATH"/Board"
-#define DEVICED_INTERFACE_BOARD           DEVICED_INTERFACE_NAME".Board"
-/* Csa service */
-#define DEVICED_PATH_CSA                DEVICED_OBJECT_PATH"/Csa"
-#define DEVICED_INTERFACE_CSA           DEVICED_INTERFACE_NAME".Csa"
-/* dump service */
-#define DUMP_SERVICE_BUS_NAME               "org.tizen.system.dumpservice"
-#define DUMP_SERVICE_OBJECT_PATH            "/Org/Tizen/System/DumpService"
-#define DUMP_SERVICE_INTERFACE_NAME         DUMP_SERVICE_BUS_NAME
-/* Coord daemon */
-#define COORD_BUS_NAME                     "org.tizen.system.coord"
-#define COORD_OBJECT_PATH                  "/Org/Tizen/System/Coord"
-#define COORD_INTERFACE_NAME               COORD_BUS_NAME
-#define COORD_PATH_AUTOBRIGHTNESS          COORD_OBJECT_PATH"/Autobrightness"
-#define COORD_INTERFACE_AUTOBRIGHTNESS     COORD_INTERFACE_NAME".autobrightness"
-
-/* LED */
-#define POPUP_PATH_LED                      POPUP_OBJECT_PATH"/Led"
-#define POPUP_INTERFACE_LED                 POPUP_INTERFACE_NAME".Led"
-/* ODE */
-#define POPUP_PATH_ODE                      POPUP_OBJECT_PATH"/Ode"
-#define POPUP_INTERFACE_ODE                 POPUP_INTERFACE_NAME".Ode"
-/* Battery */
-#define POPUP_PATH_BATTERY                  POPUP_OBJECT_PATH"/Battery"
-#define POPUP_INTERFACE_BATTERY             POPUP_INTERFACE_NAME".Battery"
-#define POPUP_METHOD_SCREENOFF_TTS          "ScreenOffTts"
-/* Overheat Timer*/
-#define POPUP_OVERHEAT_PATH            POPUP_OBJECT_PATH"/Overheat"
-#define POPUP_OVERHEAT_INTERFACE       POPUP_INTERFACE_NAME".Overheat"
-
-/***********************************************/
-/* End of the Experimental for Specific device */
-/***********************************************/
-
-
+#include "dbus-system-iface.h"
 
 typedef struct {
        const unsigned char *data;
        int size;
 } dbus_byte;
 
-GVariant *dbus_handle_method_sync_with_reply_var(const char *dest, const char *path, const char *iface, const char *method, GVariant *var);
-
-GVariant *dbus_handle_method_sync_with_reply_var_timeout(const char *dest, const char *path, const char *iface, const char *method, GVariant *var, int timeout);
-
-/* fd */
-gint* dbus_handle_get_unix_fd_list(GDBusMethodInvocation *invocation, int *size);
-
-GVariant *dbus_handle_method_with_unix_fd_list_sync_with_reply(const char *dest, const char *path,
-               const char *iface, const char *method,
-               const char *signature, const char *param[],
-               int *in_fdlist, int in_size,
-               int **out_fdlist, int *out_size);
-GVariant *dbus_handle_method_with_unix_fd_list_sync_with_reply_var(const char *dest, const char *path,
-               const char *iface, const char *method,
-               GVariant *param,
-               int *in_fdlist, int in_size,
-               int **out_fdlist, int *out_size);
 
-int dbus_handle_method_sync(const char *dest, const char *path,
-               const char *interface, const char *method,
-               const char *sig, const char *param[]);
-
-int dbus_handle_method_sync_var(const char *dest, const char *path, const char *iface, const char *method, GVariant *param);
-
-int dbus_handle_method_sync_timeout(const char *dest, const char *path,
-               const char *interface, const char *method,
-               const char *sig, const char *param[], int timeout);
-
-int dbus_handle_method_sync_pairs(const char *dest, const char *path,
-               const char *interface, const char *method,
-               int num, va_list args);
-int dbus_handle_method_async_pairs(const char *dest, const char *path,
-               const char *interface, const char *method,
-               int num, va_list args);
-int dbus_handle_method_async(const char *dest, const char *path,
-               const char *interface, const char *method,
-               const char *sig, const char *param[]);
-
-int dbus_handle_method_async_var(const char *dest, const char *path, const char *iface, const char *method, GVariant *param);
-
-typedef void (*dbus_pending_cb)(GVariant *var, void *user_data, GError *err);
-
-int dbus_handle_method_async_with_reply(const char *dest,
-               const char *path,
-               const char *iface,
-               const char *method,
-               const char *signature,
-               const char *param[],
-               dbus_pending_cb cb,
-               int timeout_msec,
-               void *data);
-
-
-int dbus_handle_method_async_with_reply_var(const char *dest,
-               const char *path,
-               const char *iface,
-               const char *method,
-               GVariant *param,
-               dbus_pending_cb cb,
-               int timeout_msec,
-               void *data);
-
-int check_systemd_active(void);
-
-/**
- * @brief   Dbus handler which is used to register and call methods
-
- * @since_tizen 4.0
- */
 typedef void *dbus_handle_h;
 
-/**
- * @brief   Dbus method handler which is used to unregister dbus methods
- * @since_tizen 4.0
- */
 typedef void *dbus_object_handle_h;
 
-/**
- * @brief   Structure which contains the dbus method name and callback function.
- * @since_tizen 4.0
- */
 typedef struct {
        const char *member;
        const char *signature_in;
        const char *signature_out;
-       GVariant *(*func)(GDBusConnection *conn,
-               const gchar *sender, const gchar *path, const gchar *iface, const gchar *name,
-               GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data);
+       GVariant *(*func)       (GDBusConnection *conn,
+                               const gchar *sender,
+                               const gchar *path,
+                               const gchar *iface,
+                               const gchar *name,
+                               GVariant *param,
+                               GDBusMethodInvocation *invocation,
+                               gpointer user_data);
 } dbus_method_s;
 
-/**
- * @brief   Structure which contains the dbus interface information and its methods.i
- * @since_tizen 4.0
- */
 typedef struct {
        dbus_object_handle_h oh;
        const char *name;
@@ -444,53 +59,248 @@ typedef struct {
        int nr_methods;
 } dbus_interface_u;
 
-#define dh_get_param_from_var(gvar, signature, ...) ((g_strcmp0(signature, g_variant_get_type_string(gvar)) == 0) ? g_variant_get(gvar, signature, __VA_ARGS__), TRUE : FALSE)
+typedef struct {
+       guint   pid;
+       guint   uid;
+       gchar  *unique_name;
+       gchar  *sec_label;
+} GDBusCredentials;
+
+#define g_variant_get_safe(gvar, signature, ...) ((g_strcmp0(signature, g_variant_get_type_string(gvar)) == 0) ? g_variant_get(gvar, signature, __VA_ARGS__), TRUE : FALSE)
 
 #define dbus_handle_new_g_variant_tuple() g_variant_new_tuple(NULL, 0)
 
-/**
- * @brief   Callback function which is called when the user data needs to be released.
- * @since_tizen 4.0
- */
 typedef void (*destroy_notified)(void *data);
 
+typedef void (*dbus_pending_cb)(GVariant *var, void *user_data, GError *err);
+
 typedef struct {
        dbus_pending_cb func;
        void *data;
 } pending_call_data;
 
-int dbus_handle_request_bus_name(dbus_handle_h handle, const char *bus_name, GBusNameAcquiredCallback acquired_handler, GBusNameLostCallback lost_handler);
+dbus_handle_h dbus_handle_get_connection       (GBusType bus_type,
+                                               gboolean priv);
+
+int dbus_handle_request_bus_name               (dbus_handle_h handle,
+                                               const char *bus_name,
+                                               GBusNameAcquiredCallback acquired_handler,
+                                               GBusNameLostCallback lost_handler);
+
+int dbus_handle_register_dbus_object           (dbus_handle_h handle,
+                                               const char *obj_path,
+                                               const dbus_interface_u *iface);
+
+int dbus_handle_unregister_dbus_object         (dbus_handle_h handle,
+                                               const char *obj_path);
+
+int dbus_handle_add_dbus_object                        (dbus_handle_h handle,
+                                               const char *obj_path,
+                                               const dbus_interface_u *iface_u);
+
+int dbus_handle_register_dbus_object_all       (dbus_handle_h handle);
+
+
+int dbus_handle_method_sync                    (const char *dest,
+                                               const char *path,
+                                               const char *interface,
+                                               const char *method,
+                                               const char *sig,
+                                               const char *param[]);
+
+int dbus_handle_method_sync_var                        (const char *dest,
+                                               const char *path,
+                                               const char *iface,
+                                               const char *method,
+                                               GVariant *param);
+
+int dbus_handle_method_sync_timeout            (const char *dest,
+                                               const char *path,
+                                               const char *interface,
+                                               const char *method,
+                                               const char *sig,
+                                               const char *param[],
+                                               int timeout);
+
+int dbus_handle_method_sync_pairs              (const char *dest,
+                                               const char *path,
+                                               const char *interface,
+                                               const char *method,
+                                               int num,
+                                               va_list args);
+
+int dbus_handle_method_async_pairs             (const char *dest,
+                                               const char *path,
+                                               const char *interface,
+                                               const char *method,
+                                               int num,
+                                               va_list args);
+
+int dbus_handle_method_async                   (const char *dest,
+                                               const char *path,
+                                               const char *interface,
+                                               const char *method,
+                                               const char *sig,
+                                               const char *param[]);
+
+int dbus_handle_method_async_var               (const char *dest,
+                                               const char *path,
+                                               const char *iface,
+                                               const char *method,
+                                               GVariant *param);
+
+int dbus_handle_method_async_with_reply                (const char *dest,
+                                               const char *path,
+                                               const char *iface,
+                                               const char *method,
+                                               const char *signature,
+                                               const char *param[],
+                                               dbus_pending_cb cb,
+                                               int timeout_msec,
+                                               void *data);
+
+int dbus_handle_method_async_with_reply_var    (const char *dest,
+                                               const char *path,
+                                               const char *iface,
+                                               const char *method,
+                                               GVariant *param,
+                                               dbus_pending_cb cb,
+                                               int timeout_msec,
+                                               void *data);
+
+int dbus_handle_method_async_pairs_with_reply  (const char *dest,
+                                               const char *path,
+                                               const char *iface,
+                                               const char *method,
+                                               int num,
+                                               va_list args,
+                                               dbus_pending_cb cb,
+                                               int timeout_msec,
+                                               void *data);
+
+GVariant *dbus_handle_method_sync_with_reply_var               (const char *dest,
+                                                               const char *path,
+                                                               const char *iface,
+                                                               const char *method,
+                                                               GVariant *var);
+
+GVariant *dbus_handle_method_sync_with_reply_var_timeout       (const char *dest,
+                                                               const char *path,
+                                                               const char *iface,
+                                                               const char *method,
+                                                               GVariant *var,
+                                                               int timeout);
+
+gint* dbus_handle_get_unix_fd_list                             (GDBusMethodInvocation *invocation,
+                                                               int *size);
+
+GVariant *dbus_handle_method_with_unix_fd_list_sync_with_reply (const char *dest,
+                                                               const char *path,
+                                                               const char *iface,
+                                                               const char *method,
+                                                               const char *signature,
+                                                               const char *param[],
+                                                               int *in_fdlist,
+                                                               int in_size,
+                                                               int **out_fdlist,
+                                                               int *out_size);
+
+GVariant *dbus_handle_method_with_unix_fd_list_sync_with_reply_var(const char *dest,
+                                                               const char *path,
+                                                               const char *iface,
+                                                               const char *method,
+                                                               GVariant *param,
+                                                               int *in_fdlist,
+                                                               int in_size,
+                                                               int **out_fdlist,
+                                                               int *out_size);
+
+
+guint subscribe_dbus_signal                    (dbus_handle_h handle,
+                                               const char *path,
+                                               const char *iface,
+                                               const char *name,
+                                               GDBusSignalCallback cb,
+                                               void *data,
+                                               destroy_notified free_func);
+
+void unsubscribe_dbus_signal                   (dbus_handle_h handle,
+                                               guint id);
+
+int dbus_handle_emit_dbus_signal               (const char *dest,
+                                               const char *path,
+                                               const char *iface,
+                                               const char *name,
+                                               GVariant *param);
+
+int dbus_handle_emit_dbus_signal_sync(const char *dest,
+                                       const char *path,
+                                       const char *iface,
+                                       const char *name,
+                                       GVariant *param);
+
+int dbus_handle_flush_sync(dbus_handle_h handle);
+
+enum ctx_quit_reason {CTX_QUIT_UNKNOWN, CTX_QUIT_NORMAL, CTX_QUIT_TIMEOUT};
 
-dbus_handle_h dbus_handle_get_connection(GBusType bus_type, gboolean priv);
+typedef struct {
+       guint sig_id;
+       GMainContext *context;
+       GMainLoop *loop;
+       GSource *timeout_src;
+       GVariant *param;
+       enum ctx_quit_reason quit_reason;
+       void *user_data;
+} sig_ctx;
 
-int dbus_handle_register_dbus_object(dbus_handle_h handle, const char *obj_path, const dbus_interface_u *iface);
-int dbus_handle_unregister_dbus_object(dbus_handle_h handle, const char *obj_path);
+sig_ctx *dbus_handle_new_signal_ctx            (void);
 
-int dbus_handle_add_dbus_object(dbus_handle_h handle, const char *obj_path, const dbus_interface_u *iface_u);
-int dbus_handle_register_dbus_object_all(dbus_handle_h handle);
+void dbus_handle_free_signal_ctx               (sig_ctx *ctx);
 
-guint subscribe_dbus_signal(dbus_handle_h handle, const char *path, const char *iface, const char *name, GDBusSignalCallback cb, void *data, destroy_notified free_func);
-void unsubscribe_dbus_signal(dbus_handle_h handle, guint id);
+guint subscribe_dbus_signal_ctx                        (dbus_handle_h handle,
+                                               sig_ctx *ctx,
+                                               const char *sender,
+                                               const char *path,
+                                               const char *iface,
+                                               const char *name,
+                                               GDBusSignalCallback cb);
 
-GVariant *dbus_handle_make_simple_array(const char *sig, int *param);
+int dbus_handle_signal_ctx_wait                        (sig_ctx *ctx);
 
-int dbus_handle_broadcast_dbus_signal(const char *path, const char *iface, const char *name, const char *signature, const char *param[]);
-int dbus_handle_broadcast_dbus_signal_var(const char *path, const char *iface, const char *name, GVariant *param);
+int dbus_handle_signal_ctx_add_timeout         (sig_ctx *ctx,
+                                               int timeout);
 
-typedef struct
-{
-       guint   pid;
-       guint   uid;
-       gchar  *unique_name;
-       gchar  *sec_label;
-} GDBusCredentials;
 
-int dbus_connection_get_sender_pid(GDBusConnection *conn, const char * sender);
-int dbus_handle_get_sender_pid(dbus_handle_h handle, const char * sender);
-int dbus_handle_get_sender_credentials(dbus_handle_h handle, const char *name, GDBusCredentials *creds);
-int dbus_handle_watch_name(const char *name, GBusNameAppearedCallback name_appeared_handler, GBusNameVanishedCallback name_vanished_handler, void *user_data, GDestroyNotify user_data_free_func);
-void dbus_handle_unwatch_name(guint id);
-char** dbus_handle_get_owner_list(dbus_handle_h handle, const char *bus_name);
-void dbus_handle_check_owner_name(dbus_handle_h handle, const char *owner_name);
 
-#endif
+
+int dbus_connection_get_sender_pid             (GDBusConnection *conn,
+                                               const char * sender);
+
+int dbus_handle_get_sender_pid                 (dbus_handle_h handle,
+                                               const char * sender);
+
+int dbus_handle_get_sender_credentials         (dbus_handle_h handle,
+                                               const char *name,
+                                               GDBusCredentials *creds);
+
+int dbus_handle_watch_name                     (const char *name,
+                                               GBusNameAppearedCallback name_appeared_handler,
+                                               GBusNameVanishedCallback name_vanished_handler,
+                                               void *user_data,
+                                               GDestroyNotify user_data_free_func);
+
+void dbus_handle_unwatch_name                  (guint id);
+
+char** dbus_handle_get_owner_list              (dbus_handle_h handle,
+                                               const char *bus_name);
+
+void dbus_handle_check_owner_name              (dbus_handle_h handle,
+                                               const char *owner_name);
+
+int check_systemd_active                       (void);
+
+GVariant *dbus_handle_make_simple_array                (const char *sig,
+                                               int *param);
+
+
+#endif
\ No newline at end of file