From: youngman Date: Thu, 18 Jun 2015 06:50:34 +0000 (+0900) Subject: Apply sender concept for signal X-Git-Tag: submit/tizen/20151130.235229~121 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c2499eb0ac5d5aa3f197cb53a57977a85f148779;p=platform%2Fcore%2Fiot%2Fiotcon.git Apply sender concept for signal Change-Id: I33ce01fbd45ca8e759e949f985ce360ecf863e44 Signed-off-by: youngman --- diff --git a/common/ic-common.h b/common/ic-common.h index aed7096..867fe55 100644 --- a/common/ic-common.h +++ b/common/ic-common.h @@ -25,4 +25,16 @@ #define IOTCON_DBUS_OBJPATH "/org/tizen/iotcon/dbus" +#define IC_DBUS_SIGNAL_LENGTH 20 + +#define IC_DBUS_SIGNAL_REQUEST_HANDLER "REQ" +#define IC_DBUS_SIGNAL_FOUND_RESOURCE "RES" +#define IC_DBUS_SIGNAL_GET "GET" +#define IC_DBUS_SIGNAL_PUT "PUT" +#define IC_DBUS_SIGNAL_POST "POST" +#define IC_DBUS_SIGNAL_DELETE "DELETE" +#define IC_DBUS_SIGNAL_OBSERVE "OBSERVE" +#define IC_DBUS_SIGNAL_DEVICE "DEVICE" +#define IC_DBUS_SIGNAL_PRESENCE "PRESENCE" + #endif /* __IOT_CONNECTIVITY_MANAGER_INTERNAL_COMMON_H__ */ diff --git a/common/ic-dbus.c b/common/ic-dbus.c index 5f510dc..6a89db3 100644 --- a/common/ic-dbus.c +++ b/common/ic-dbus.c @@ -716,12 +716,12 @@ static const _ExtendedGDBusArgInfo _ic_dbus_method_info_find_resource_IN_ARG_typ FALSE }; -static const _ExtendedGDBusArgInfo _ic_dbus_method_info_find_resource_IN_ARG_sig_name = +static const _ExtendedGDBusArgInfo _ic_dbus_method_info_find_resource_IN_ARG_signal_number = { { -1, - (gchar *) "sig_name", - (gchar *) "s", + (gchar *) "signal_number", + (gchar *) "u", NULL }, FALSE @@ -731,7 +731,7 @@ static const _ExtendedGDBusArgInfo * const _ic_dbus_method_info_find_resource_IN { &_ic_dbus_method_info_find_resource_IN_ARG_host_address, &_ic_dbus_method_info_find_resource_IN_ARG_type, - &_ic_dbus_method_info_find_resource_IN_ARG_sig_name, + &_ic_dbus_method_info_find_resource_IN_ARG_signal_number, NULL }; @@ -787,12 +787,12 @@ static const _ExtendedGDBusArgInfo _ic_dbus_method_info_get_IN_ARG_query = FALSE }; -static const _ExtendedGDBusArgInfo _ic_dbus_method_info_get_IN_ARG_sig_name = +static const _ExtendedGDBusArgInfo _ic_dbus_method_info_get_IN_ARG_signal_number = { { -1, - (gchar *) "sig_name", - (gchar *) "s", + (gchar *) "signal_number", + (gchar *) "u", NULL }, FALSE @@ -802,7 +802,7 @@ static const _ExtendedGDBusArgInfo * const _ic_dbus_method_info_get_IN_ARG_point { &_ic_dbus_method_info_get_IN_ARG_client, &_ic_dbus_method_info_get_IN_ARG_query, - &_ic_dbus_method_info_get_IN_ARG_sig_name, + &_ic_dbus_method_info_get_IN_ARG_signal_number, NULL }; @@ -869,12 +869,12 @@ static const _ExtendedGDBusArgInfo _ic_dbus_method_info_put_IN_ARG_query = FALSE }; -static const _ExtendedGDBusArgInfo _ic_dbus_method_info_put_IN_ARG_sig_name = +static const _ExtendedGDBusArgInfo _ic_dbus_method_info_put_IN_ARG_signal_number = { { -1, - (gchar *) "sig_name", - (gchar *) "s", + (gchar *) "signal_number", + (gchar *) "u", NULL }, FALSE @@ -885,7 +885,7 @@ static const _ExtendedGDBusArgInfo * const _ic_dbus_method_info_put_IN_ARG_point &_ic_dbus_method_info_put_IN_ARG_client, &_ic_dbus_method_info_put_IN_ARG_repr, &_ic_dbus_method_info_put_IN_ARG_query, - &_ic_dbus_method_info_put_IN_ARG_sig_name, + &_ic_dbus_method_info_put_IN_ARG_signal_number, NULL }; @@ -952,12 +952,12 @@ static const _ExtendedGDBusArgInfo _ic_dbus_method_info_post_IN_ARG_query = FALSE }; -static const _ExtendedGDBusArgInfo _ic_dbus_method_info_post_IN_ARG_sig_name = +static const _ExtendedGDBusArgInfo _ic_dbus_method_info_post_IN_ARG_signal_number = { { -1, - (gchar *) "sig_name", - (gchar *) "s", + (gchar *) "signal_number", + (gchar *) "u", NULL }, FALSE @@ -968,7 +968,7 @@ static const _ExtendedGDBusArgInfo * const _ic_dbus_method_info_post_IN_ARG_poin &_ic_dbus_method_info_post_IN_ARG_client, &_ic_dbus_method_info_post_IN_ARG_repr, &_ic_dbus_method_info_post_IN_ARG_query, - &_ic_dbus_method_info_post_IN_ARG_sig_name, + &_ic_dbus_method_info_post_IN_ARG_signal_number, NULL }; @@ -1013,12 +1013,12 @@ static const _ExtendedGDBusArgInfo _ic_dbus_method_info_delete_IN_ARG_client = FALSE }; -static const _ExtendedGDBusArgInfo _ic_dbus_method_info_delete_IN_ARG_sig_name = +static const _ExtendedGDBusArgInfo _ic_dbus_method_info_delete_IN_ARG_signal_number = { { -1, - (gchar *) "sig_name", - (gchar *) "s", + (gchar *) "signal_number", + (gchar *) "u", NULL }, FALSE @@ -1027,7 +1027,7 @@ static const _ExtendedGDBusArgInfo _ic_dbus_method_info_delete_IN_ARG_sig_name = static const _ExtendedGDBusArgInfo * const _ic_dbus_method_info_delete_IN_ARG_pointers[] = { &_ic_dbus_method_info_delete_IN_ARG_client, - &_ic_dbus_method_info_delete_IN_ARG_sig_name, + &_ic_dbus_method_info_delete_IN_ARG_signal_number, NULL }; @@ -1094,12 +1094,12 @@ static const _ExtendedGDBusArgInfo _ic_dbus_method_info_observer_start_IN_ARG_qu FALSE }; -static const _ExtendedGDBusArgInfo _ic_dbus_method_info_observer_start_IN_ARG_sig_name = +static const _ExtendedGDBusArgInfo _ic_dbus_method_info_observer_start_IN_ARG_signal_number = { { -1, - (gchar *) "sig_name", - (gchar *) "s", + (gchar *) "signal_number", + (gchar *) "u", NULL }, FALSE @@ -1110,7 +1110,7 @@ static const _ExtendedGDBusArgInfo * const _ic_dbus_method_info_observer_start_I &_ic_dbus_method_info_observer_start_IN_ARG_client, &_ic_dbus_method_info_observer_start_IN_ARG_observe_type, &_ic_dbus_method_info_observer_start_IN_ARG_query, - &_ic_dbus_method_info_observer_start_IN_ARG_sig_name, + &_ic_dbus_method_info_observer_start_IN_ARG_signal_number, NULL }; @@ -1261,12 +1261,12 @@ static const _ExtendedGDBusArgInfo _ic_dbus_method_info_get_device_info_IN_ARG_h FALSE }; -static const _ExtendedGDBusArgInfo _ic_dbus_method_info_get_device_info_IN_ARG_sig_name = +static const _ExtendedGDBusArgInfo _ic_dbus_method_info_get_device_info_IN_ARG_signal_number = { { -1, - (gchar *) "sig_name", - (gchar *) "s", + (gchar *) "signal_number", + (gchar *) "u", NULL }, FALSE @@ -1275,7 +1275,7 @@ static const _ExtendedGDBusArgInfo _ic_dbus_method_info_get_device_info_IN_ARG_s static const _ExtendedGDBusArgInfo * const _ic_dbus_method_info_get_device_info_IN_ARG_pointers[] = { &_ic_dbus_method_info_get_device_info_IN_ARG_host_address, - &_ic_dbus_method_info_get_device_info_IN_ARG_sig_name, + &_ic_dbus_method_info_get_device_info_IN_ARG_signal_number, NULL }; @@ -1331,12 +1331,12 @@ static const _ExtendedGDBusArgInfo _ic_dbus_method_info_subscribe_presence_IN_AR FALSE }; -static const _ExtendedGDBusArgInfo _ic_dbus_method_info_subscribe_presence_IN_ARG_sig_name = +static const _ExtendedGDBusArgInfo _ic_dbus_method_info_subscribe_presence_IN_ARG_signal_number = { { -1, - (gchar *) "sig_name", - (gchar *) "s", + (gchar *) "signal_number", + (gchar *) "u", NULL }, FALSE @@ -1346,7 +1346,7 @@ static const _ExtendedGDBusArgInfo * const _ic_dbus_method_info_subscribe_presen { &_ic_dbus_method_info_subscribe_presence_IN_ARG_host_address, &_ic_dbus_method_info_subscribe_presence_IN_ARG_type, - &_ic_dbus_method_info_subscribe_presence_IN_ARG_sig_name, + &_ic_dbus_method_info_subscribe_presence_IN_ARG_signal_number, NULL }; @@ -1840,7 +1840,7 @@ ic_dbus_default_init (icDbusIface *iface) * @invocation: A #GDBusMethodInvocation. * @arg_host_address: Argument passed by remote caller. * @arg_type: Argument passed by remote caller. - * @arg_sig_name: Argument passed by remote caller. + * @arg_signal_number: Argument passed by remote caller. * * Signal emitted when a remote caller is invoking the findResource() D-Bus method. * @@ -1857,7 +1857,7 @@ ic_dbus_default_init (icDbusIface *iface) g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 4, - G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); + G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT); /** * icDbus::handle-get: @@ -1865,7 +1865,7 @@ ic_dbus_default_init (icDbusIface *iface) * @invocation: A #GDBusMethodInvocation. * @arg_client: Argument passed by remote caller. * @arg_query: Argument passed by remote caller. - * @arg_sig_name: Argument passed by remote caller. + * @arg_signal_number: Argument passed by remote caller. * * Signal emitted when a remote caller is invoking the get() D-Bus method. * @@ -1882,7 +1882,7 @@ ic_dbus_default_init (icDbusIface *iface) g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 4, - G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_VARIANT, G_TYPE_VARIANT, G_TYPE_STRING); + G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_VARIANT, G_TYPE_VARIANT, G_TYPE_UINT); /** * icDbus::handle-put: @@ -1891,7 +1891,7 @@ ic_dbus_default_init (icDbusIface *iface) * @arg_client: Argument passed by remote caller. * @arg_repr: Argument passed by remote caller. * @arg_query: Argument passed by remote caller. - * @arg_sig_name: Argument passed by remote caller. + * @arg_signal_number: Argument passed by remote caller. * * Signal emitted when a remote caller is invoking the put() D-Bus method. * @@ -1908,7 +1908,7 @@ ic_dbus_default_init (icDbusIface *iface) g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 5, - G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_VARIANT, G_TYPE_STRING, G_TYPE_VARIANT, G_TYPE_STRING); + G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_VARIANT, G_TYPE_STRING, G_TYPE_VARIANT, G_TYPE_UINT); /** * icDbus::handle-post: @@ -1917,7 +1917,7 @@ ic_dbus_default_init (icDbusIface *iface) * @arg_client: Argument passed by remote caller. * @arg_repr: Argument passed by remote caller. * @arg_query: Argument passed by remote caller. - * @arg_sig_name: Argument passed by remote caller. + * @arg_signal_number: Argument passed by remote caller. * * Signal emitted when a remote caller is invoking the post() D-Bus method. * @@ -1934,14 +1934,14 @@ ic_dbus_default_init (icDbusIface *iface) g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 5, - G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_VARIANT, G_TYPE_STRING, G_TYPE_VARIANT, G_TYPE_STRING); + G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_VARIANT, G_TYPE_STRING, G_TYPE_VARIANT, G_TYPE_UINT); /** * icDbus::handle-delete: * @object: A #icDbus. * @invocation: A #GDBusMethodInvocation. * @arg_client: Argument passed by remote caller. - * @arg_sig_name: Argument passed by remote caller. + * @arg_signal_number: Argument passed by remote caller. * * Signal emitted when a remote caller is invoking the delete() D-Bus method. * @@ -1958,7 +1958,7 @@ ic_dbus_default_init (icDbusIface *iface) g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 3, - G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_VARIANT, G_TYPE_STRING); + G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_VARIANT, G_TYPE_UINT); /** * icDbus::handle-observer-start: @@ -1967,7 +1967,7 @@ ic_dbus_default_init (icDbusIface *iface) * @arg_client: Argument passed by remote caller. * @arg_observe_type: Argument passed by remote caller. * @arg_query: Argument passed by remote caller. - * @arg_sig_name: Argument passed by remote caller. + * @arg_signal_number: Argument passed by remote caller. * * Signal emitted when a remote caller is invoking the observerStart() D-Bus method. * @@ -1984,7 +1984,7 @@ ic_dbus_default_init (icDbusIface *iface) g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 5, - G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_VARIANT, G_TYPE_INT, G_TYPE_VARIANT, G_TYPE_STRING); + G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_VARIANT, G_TYPE_INT, G_TYPE_VARIANT, G_TYPE_UINT); /** * icDbus::handle-observer-stop: @@ -2037,7 +2037,7 @@ ic_dbus_default_init (icDbusIface *iface) * @object: A #icDbus. * @invocation: A #GDBusMethodInvocation. * @arg_host_address: Argument passed by remote caller. - * @arg_sig_name: Argument passed by remote caller. + * @arg_signal_number: Argument passed by remote caller. * * Signal emitted when a remote caller is invoking the getDeviceInfo() D-Bus method. * @@ -2054,7 +2054,7 @@ ic_dbus_default_init (icDbusIface *iface) g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 3, - G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_STRING); + G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_UINT); /** * icDbus::handle-subscribe-presence: @@ -2062,7 +2062,7 @@ ic_dbus_default_init (icDbusIface *iface) * @invocation: A #GDBusMethodInvocation. * @arg_host_address: Argument passed by remote caller. * @arg_type: Argument passed by remote caller. - * @arg_sig_name: Argument passed by remote caller. + * @arg_signal_number: Argument passed by remote caller. * * Signal emitted when a remote caller is invoking the subscribePresence() D-Bus method. * @@ -2079,7 +2079,7 @@ ic_dbus_default_init (icDbusIface *iface) g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 4, - G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); + G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT); /** * icDbus::handle-unsubscribe-presence: @@ -3146,7 +3146,7 @@ _out: * @proxy: A #icDbusProxy. * @arg_host_address: Argument to pass with the method invocation. * @arg_type: Argument to pass with the method invocation. - * @arg_sig_name: Argument to pass with the method invocation. + * @arg_signal_number: Argument to pass with the method invocation. * @cancellable: (allow-none): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. * @user_data: User data to pass to @callback. @@ -3162,17 +3162,17 @@ ic_dbus_call_find_resource ( icDbus *proxy, const gchar *arg_host_address, const gchar *arg_type, - const gchar *arg_sig_name, + guint arg_signal_number, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_dbus_proxy_call (G_DBUS_PROXY (proxy), "findResource", - g_variant_new ("(sss)", + g_variant_new ("(ssu)", arg_host_address, arg_type, - arg_sig_name), + arg_signal_number), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, @@ -3215,7 +3215,7 @@ _out: * @proxy: A #icDbusProxy. * @arg_host_address: Argument to pass with the method invocation. * @arg_type: Argument to pass with the method invocation. - * @arg_sig_name: Argument to pass with the method invocation. + * @arg_signal_number: Argument to pass with the method invocation. * @out_ret: (out): Return location for return parameter or %NULL to ignore. * @cancellable: (allow-none): A #GCancellable or %NULL. * @error: Return location for error or %NULL. @@ -3231,7 +3231,7 @@ ic_dbus_call_find_resource_sync ( icDbus *proxy, const gchar *arg_host_address, const gchar *arg_type, - const gchar *arg_sig_name, + guint arg_signal_number, gint *out_ret, GCancellable *cancellable, GError **error) @@ -3239,10 +3239,10 @@ ic_dbus_call_find_resource_sync ( GVariant *_ret; _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), "findResource", - g_variant_new ("(sss)", + g_variant_new ("(ssu)", arg_host_address, arg_type, - arg_sig_name), + arg_signal_number), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, @@ -3262,7 +3262,7 @@ _out: * @proxy: A #icDbusProxy. * @arg_client: Argument to pass with the method invocation. * @arg_query: Argument to pass with the method invocation. - * @arg_sig_name: Argument to pass with the method invocation. + * @arg_signal_number: Argument to pass with the method invocation. * @cancellable: (allow-none): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. * @user_data: User data to pass to @callback. @@ -3278,17 +3278,17 @@ ic_dbus_call_get ( icDbus *proxy, GVariant *arg_client, GVariant *arg_query, - const gchar *arg_sig_name, + guint arg_signal_number, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_dbus_proxy_call (G_DBUS_PROXY (proxy), "get", - g_variant_new ("(@(ssba(qs)asii)@a(ss)s)", + g_variant_new ("(@(ssba(qs)asii)@a(ss)u)", arg_client, arg_query, - arg_sig_name), + arg_signal_number), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, @@ -3331,7 +3331,7 @@ _out: * @proxy: A #icDbusProxy. * @arg_client: Argument to pass with the method invocation. * @arg_query: Argument to pass with the method invocation. - * @arg_sig_name: Argument to pass with the method invocation. + * @arg_signal_number: Argument to pass with the method invocation. * @out_ret: (out): Return location for return parameter or %NULL to ignore. * @cancellable: (allow-none): A #GCancellable or %NULL. * @error: Return location for error or %NULL. @@ -3347,7 +3347,7 @@ ic_dbus_call_get_sync ( icDbus *proxy, GVariant *arg_client, GVariant *arg_query, - const gchar *arg_sig_name, + guint arg_signal_number, gint *out_ret, GCancellable *cancellable, GError **error) @@ -3355,10 +3355,10 @@ ic_dbus_call_get_sync ( GVariant *_ret; _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), "get", - g_variant_new ("(@(ssba(qs)asii)@a(ss)s)", + g_variant_new ("(@(ssba(qs)asii)@a(ss)u)", arg_client, arg_query, - arg_sig_name), + arg_signal_number), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, @@ -3379,7 +3379,7 @@ _out: * @arg_client: Argument to pass with the method invocation. * @arg_repr: Argument to pass with the method invocation. * @arg_query: Argument to pass with the method invocation. - * @arg_sig_name: Argument to pass with the method invocation. + * @arg_signal_number: Argument to pass with the method invocation. * @cancellable: (allow-none): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. * @user_data: User data to pass to @callback. @@ -3396,18 +3396,18 @@ ic_dbus_call_put ( GVariant *arg_client, const gchar *arg_repr, GVariant *arg_query, - const gchar *arg_sig_name, + guint arg_signal_number, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_dbus_proxy_call (G_DBUS_PROXY (proxy), "put", - g_variant_new ("(@(ssba(qs)asii)s@a(ss)s)", + g_variant_new ("(@(ssba(qs)asii)s@a(ss)u)", arg_client, arg_repr, arg_query, - arg_sig_name), + arg_signal_number), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, @@ -3451,7 +3451,7 @@ _out: * @arg_client: Argument to pass with the method invocation. * @arg_repr: Argument to pass with the method invocation. * @arg_query: Argument to pass with the method invocation. - * @arg_sig_name: Argument to pass with the method invocation. + * @arg_signal_number: Argument to pass with the method invocation. * @out_ret: (out): Return location for return parameter or %NULL to ignore. * @cancellable: (allow-none): A #GCancellable or %NULL. * @error: Return location for error or %NULL. @@ -3468,7 +3468,7 @@ ic_dbus_call_put_sync ( GVariant *arg_client, const gchar *arg_repr, GVariant *arg_query, - const gchar *arg_sig_name, + guint arg_signal_number, gint *out_ret, GCancellable *cancellable, GError **error) @@ -3476,11 +3476,11 @@ ic_dbus_call_put_sync ( GVariant *_ret; _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), "put", - g_variant_new ("(@(ssba(qs)asii)s@a(ss)s)", + g_variant_new ("(@(ssba(qs)asii)s@a(ss)u)", arg_client, arg_repr, arg_query, - arg_sig_name), + arg_signal_number), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, @@ -3501,7 +3501,7 @@ _out: * @arg_client: Argument to pass with the method invocation. * @arg_repr: Argument to pass with the method invocation. * @arg_query: Argument to pass with the method invocation. - * @arg_sig_name: Argument to pass with the method invocation. + * @arg_signal_number: Argument to pass with the method invocation. * @cancellable: (allow-none): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. * @user_data: User data to pass to @callback. @@ -3518,18 +3518,18 @@ ic_dbus_call_post ( GVariant *arg_client, const gchar *arg_repr, GVariant *arg_query, - const gchar *arg_sig_name, + guint arg_signal_number, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_dbus_proxy_call (G_DBUS_PROXY (proxy), "post", - g_variant_new ("(@(ssba(qs)asii)s@a(ss)s)", + g_variant_new ("(@(ssba(qs)asii)s@a(ss)u)", arg_client, arg_repr, arg_query, - arg_sig_name), + arg_signal_number), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, @@ -3573,7 +3573,7 @@ _out: * @arg_client: Argument to pass with the method invocation. * @arg_repr: Argument to pass with the method invocation. * @arg_query: Argument to pass with the method invocation. - * @arg_sig_name: Argument to pass with the method invocation. + * @arg_signal_number: Argument to pass with the method invocation. * @out_ret: (out): Return location for return parameter or %NULL to ignore. * @cancellable: (allow-none): A #GCancellable or %NULL. * @error: Return location for error or %NULL. @@ -3590,7 +3590,7 @@ ic_dbus_call_post_sync ( GVariant *arg_client, const gchar *arg_repr, GVariant *arg_query, - const gchar *arg_sig_name, + guint arg_signal_number, gint *out_ret, GCancellable *cancellable, GError **error) @@ -3598,11 +3598,11 @@ ic_dbus_call_post_sync ( GVariant *_ret; _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), "post", - g_variant_new ("(@(ssba(qs)asii)s@a(ss)s)", + g_variant_new ("(@(ssba(qs)asii)s@a(ss)u)", arg_client, arg_repr, arg_query, - arg_sig_name), + arg_signal_number), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, @@ -3621,7 +3621,7 @@ _out: * ic_dbus_call_delete: * @proxy: A #icDbusProxy. * @arg_client: Argument to pass with the method invocation. - * @arg_sig_name: Argument to pass with the method invocation. + * @arg_signal_number: Argument to pass with the method invocation. * @cancellable: (allow-none): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. * @user_data: User data to pass to @callback. @@ -3636,16 +3636,16 @@ void ic_dbus_call_delete ( icDbus *proxy, GVariant *arg_client, - const gchar *arg_sig_name, + guint arg_signal_number, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_dbus_proxy_call (G_DBUS_PROXY (proxy), "delete", - g_variant_new ("(@(ssba(qs)asii)s)", + g_variant_new ("(@(ssba(qs)asii)u)", arg_client, - arg_sig_name), + arg_signal_number), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, @@ -3687,7 +3687,7 @@ _out: * ic_dbus_call_delete_sync: * @proxy: A #icDbusProxy. * @arg_client: Argument to pass with the method invocation. - * @arg_sig_name: Argument to pass with the method invocation. + * @arg_signal_number: Argument to pass with the method invocation. * @out_ret: (out): Return location for return parameter or %NULL to ignore. * @cancellable: (allow-none): A #GCancellable or %NULL. * @error: Return location for error or %NULL. @@ -3702,7 +3702,7 @@ gboolean ic_dbus_call_delete_sync ( icDbus *proxy, GVariant *arg_client, - const gchar *arg_sig_name, + guint arg_signal_number, gint *out_ret, GCancellable *cancellable, GError **error) @@ -3710,9 +3710,9 @@ ic_dbus_call_delete_sync ( GVariant *_ret; _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), "delete", - g_variant_new ("(@(ssba(qs)asii)s)", + g_variant_new ("(@(ssba(qs)asii)u)", arg_client, - arg_sig_name), + arg_signal_number), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, @@ -3733,7 +3733,7 @@ _out: * @arg_client: Argument to pass with the method invocation. * @arg_observe_type: Argument to pass with the method invocation. * @arg_query: Argument to pass with the method invocation. - * @arg_sig_name: Argument to pass with the method invocation. + * @arg_signal_number: Argument to pass with the method invocation. * @cancellable: (allow-none): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. * @user_data: User data to pass to @callback. @@ -3750,18 +3750,18 @@ ic_dbus_call_observer_start ( GVariant *arg_client, gint arg_observe_type, GVariant *arg_query, - const gchar *arg_sig_name, + guint arg_signal_number, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_dbus_proxy_call (G_DBUS_PROXY (proxy), "observerStart", - g_variant_new ("(@(ssba(qs)asii)i@a(ss)s)", + g_variant_new ("(@(ssba(qs)asii)i@a(ss)u)", arg_client, arg_observe_type, arg_query, - arg_sig_name), + arg_signal_number), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, @@ -3808,7 +3808,7 @@ _out: * @arg_client: Argument to pass with the method invocation. * @arg_observe_type: Argument to pass with the method invocation. * @arg_query: Argument to pass with the method invocation. - * @arg_sig_name: Argument to pass with the method invocation. + * @arg_signal_number: Argument to pass with the method invocation. * @out_observe_h: (out): Return location for return parameter or %NULL to ignore. * @out_ret: (out): Return location for return parameter or %NULL to ignore. * @cancellable: (allow-none): A #GCancellable or %NULL. @@ -3826,7 +3826,7 @@ ic_dbus_call_observer_start_sync ( GVariant *arg_client, gint arg_observe_type, GVariant *arg_query, - const gchar *arg_sig_name, + guint arg_signal_number, gint *out_observe_h, gint *out_ret, GCancellable *cancellable, @@ -3835,11 +3835,11 @@ ic_dbus_call_observer_start_sync ( GVariant *_ret; _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), "observerStart", - g_variant_new ("(@(ssba(qs)asii)i@a(ss)s)", + g_variant_new ("(@(ssba(qs)asii)i@a(ss)u)", arg_client, arg_observe_type, arg_query, - arg_sig_name), + arg_signal_number), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, @@ -4067,7 +4067,7 @@ _out: * ic_dbus_call_get_device_info: * @proxy: A #icDbusProxy. * @arg_host_address: Argument to pass with the method invocation. - * @arg_sig_name: Argument to pass with the method invocation. + * @arg_signal_number: Argument to pass with the method invocation. * @cancellable: (allow-none): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. * @user_data: User data to pass to @callback. @@ -4082,16 +4082,16 @@ void ic_dbus_call_get_device_info ( icDbus *proxy, const gchar *arg_host_address, - const gchar *arg_sig_name, + guint arg_signal_number, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_dbus_proxy_call (G_DBUS_PROXY (proxy), "getDeviceInfo", - g_variant_new ("(ss)", + g_variant_new ("(su)", arg_host_address, - arg_sig_name), + arg_signal_number), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, @@ -4133,7 +4133,7 @@ _out: * ic_dbus_call_get_device_info_sync: * @proxy: A #icDbusProxy. * @arg_host_address: Argument to pass with the method invocation. - * @arg_sig_name: Argument to pass with the method invocation. + * @arg_signal_number: Argument to pass with the method invocation. * @out_ret: (out): Return location for return parameter or %NULL to ignore. * @cancellable: (allow-none): A #GCancellable or %NULL. * @error: Return location for error or %NULL. @@ -4148,7 +4148,7 @@ gboolean ic_dbus_call_get_device_info_sync ( icDbus *proxy, const gchar *arg_host_address, - const gchar *arg_sig_name, + guint arg_signal_number, gint *out_ret, GCancellable *cancellable, GError **error) @@ -4156,9 +4156,9 @@ ic_dbus_call_get_device_info_sync ( GVariant *_ret; _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), "getDeviceInfo", - g_variant_new ("(ss)", + g_variant_new ("(su)", arg_host_address, - arg_sig_name), + arg_signal_number), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, @@ -4178,7 +4178,7 @@ _out: * @proxy: A #icDbusProxy. * @arg_host_address: Argument to pass with the method invocation. * @arg_type: Argument to pass with the method invocation. - * @arg_sig_name: Argument to pass with the method invocation. + * @arg_signal_number: Argument to pass with the method invocation. * @cancellable: (allow-none): A #GCancellable or %NULL. * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. * @user_data: User data to pass to @callback. @@ -4194,17 +4194,17 @@ ic_dbus_call_subscribe_presence ( icDbus *proxy, const gchar *arg_host_address, const gchar *arg_type, - const gchar *arg_sig_name, + guint arg_signal_number, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_dbus_proxy_call (G_DBUS_PROXY (proxy), "subscribePresence", - g_variant_new ("(sss)", + g_variant_new ("(ssu)", arg_host_address, arg_type, - arg_sig_name), + arg_signal_number), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, @@ -4247,7 +4247,7 @@ _out: * @proxy: A #icDbusProxy. * @arg_host_address: Argument to pass with the method invocation. * @arg_type: Argument to pass with the method invocation. - * @arg_sig_name: Argument to pass with the method invocation. + * @arg_signal_number: Argument to pass with the method invocation. * @out_presence_h: (out): Return location for return parameter or %NULL to ignore. * @cancellable: (allow-none): A #GCancellable or %NULL. * @error: Return location for error or %NULL. @@ -4263,7 +4263,7 @@ ic_dbus_call_subscribe_presence_sync ( icDbus *proxy, const gchar *arg_host_address, const gchar *arg_type, - const gchar *arg_sig_name, + guint arg_signal_number, gint *out_presence_h, GCancellable *cancellable, GError **error) @@ -4271,10 +4271,10 @@ ic_dbus_call_subscribe_presence_sync ( GVariant *_ret; _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), "subscribePresence", - g_variant_new ("(sss)", + g_variant_new ("(ssu)", arg_host_address, arg_type, - arg_sig_name), + arg_signal_number), G_DBUS_CALL_FLAGS_NONE, -1, cancellable, diff --git a/common/ic-dbus.h b/common/ic-dbus.h index 5e77484..be8002e 100644 --- a/common/ic-dbus.h +++ b/common/ic-dbus.h @@ -50,27 +50,27 @@ struct _icDbusIface icDbus *object, GDBusMethodInvocation *invocation, GVariant *arg_client, - const gchar *arg_sig_name); + guint arg_signal_number); gboolean (*handle_find_resource) ( icDbus *object, GDBusMethodInvocation *invocation, const gchar *arg_host_address, const gchar *arg_type, - const gchar *arg_sig_name); + guint arg_signal_number); gboolean (*handle_get) ( icDbus *object, GDBusMethodInvocation *invocation, GVariant *arg_client, GVariant *arg_query, - const gchar *arg_sig_name); + guint arg_signal_number); gboolean (*handle_get_device_info) ( icDbus *object, GDBusMethodInvocation *invocation, const gchar *arg_host_address, - const gchar *arg_sig_name); + guint arg_signal_number); gboolean (*handle_notify_all) ( icDbus *object, @@ -90,7 +90,7 @@ struct _icDbusIface GVariant *arg_client, gint arg_observe_type, GVariant *arg_query, - const gchar *arg_sig_name); + guint arg_signal_number); gboolean (*handle_observer_stop) ( icDbus *object, @@ -103,7 +103,7 @@ struct _icDbusIface GVariant *arg_client, const gchar *arg_repr, GVariant *arg_query, - const gchar *arg_sig_name); + guint arg_signal_number); gboolean (*handle_put) ( icDbus *object, @@ -111,7 +111,7 @@ struct _icDbusIface GVariant *arg_client, const gchar *arg_repr, GVariant *arg_query, - const gchar *arg_sig_name); + guint arg_signal_number); gboolean (*handle_register_device_info) ( icDbus *object, @@ -145,7 +145,7 @@ struct _icDbusIface GDBusMethodInvocation *invocation, const gchar *arg_host_address, const gchar *arg_type, - const gchar *arg_sig_name); + guint arg_signal_number); gboolean (*handle_unbind_resource) ( icDbus *object, @@ -488,7 +488,7 @@ void ic_dbus_call_find_resource ( icDbus *proxy, const gchar *arg_host_address, const gchar *arg_type, - const gchar *arg_sig_name, + guint arg_signal_number, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); @@ -503,7 +503,7 @@ gboolean ic_dbus_call_find_resource_sync ( icDbus *proxy, const gchar *arg_host_address, const gchar *arg_type, - const gchar *arg_sig_name, + guint arg_signal_number, gint *out_ret, GCancellable *cancellable, GError **error); @@ -512,7 +512,7 @@ void ic_dbus_call_get ( icDbus *proxy, GVariant *arg_client, GVariant *arg_query, - const gchar *arg_sig_name, + guint arg_signal_number, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); @@ -527,7 +527,7 @@ gboolean ic_dbus_call_get_sync ( icDbus *proxy, GVariant *arg_client, GVariant *arg_query, - const gchar *arg_sig_name, + guint arg_signal_number, gint *out_ret, GCancellable *cancellable, GError **error); @@ -537,7 +537,7 @@ void ic_dbus_call_put ( GVariant *arg_client, const gchar *arg_repr, GVariant *arg_query, - const gchar *arg_sig_name, + guint arg_signal_number, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); @@ -553,7 +553,7 @@ gboolean ic_dbus_call_put_sync ( GVariant *arg_client, const gchar *arg_repr, GVariant *arg_query, - const gchar *arg_sig_name, + guint arg_signal_number, gint *out_ret, GCancellable *cancellable, GError **error); @@ -563,7 +563,7 @@ void ic_dbus_call_post ( GVariant *arg_client, const gchar *arg_repr, GVariant *arg_query, - const gchar *arg_sig_name, + guint arg_signal_number, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); @@ -579,7 +579,7 @@ gboolean ic_dbus_call_post_sync ( GVariant *arg_client, const gchar *arg_repr, GVariant *arg_query, - const gchar *arg_sig_name, + guint arg_signal_number, gint *out_ret, GCancellable *cancellable, GError **error); @@ -587,7 +587,7 @@ gboolean ic_dbus_call_post_sync ( void ic_dbus_call_delete ( icDbus *proxy, GVariant *arg_client, - const gchar *arg_sig_name, + guint arg_signal_number, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); @@ -601,7 +601,7 @@ gboolean ic_dbus_call_delete_finish ( gboolean ic_dbus_call_delete_sync ( icDbus *proxy, GVariant *arg_client, - const gchar *arg_sig_name, + guint arg_signal_number, gint *out_ret, GCancellable *cancellable, GError **error); @@ -611,7 +611,7 @@ void ic_dbus_call_observer_start ( GVariant *arg_client, gint arg_observe_type, GVariant *arg_query, - const gchar *arg_sig_name, + guint arg_signal_number, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); @@ -628,7 +628,7 @@ gboolean ic_dbus_call_observer_start_sync ( GVariant *arg_client, gint arg_observe_type, GVariant *arg_query, - const gchar *arg_sig_name, + guint arg_signal_number, gint *out_observe_h, gint *out_ret, GCancellable *cancellable, @@ -677,7 +677,7 @@ gboolean ic_dbus_call_register_device_info_sync ( void ic_dbus_call_get_device_info ( icDbus *proxy, const gchar *arg_host_address, - const gchar *arg_sig_name, + guint arg_signal_number, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); @@ -691,7 +691,7 @@ gboolean ic_dbus_call_get_device_info_finish ( gboolean ic_dbus_call_get_device_info_sync ( icDbus *proxy, const gchar *arg_host_address, - const gchar *arg_sig_name, + guint arg_signal_number, gint *out_ret, GCancellable *cancellable, GError **error); @@ -700,7 +700,7 @@ void ic_dbus_call_subscribe_presence ( icDbus *proxy, const gchar *arg_host_address, const gchar *arg_type, - const gchar *arg_sig_name, + guint arg_signal_number, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); @@ -715,7 +715,7 @@ gboolean ic_dbus_call_subscribe_presence_sync ( icDbus *proxy, const gchar *arg_host_address, const gchar *arg_type, - const gchar *arg_sig_name, + guint arg_signal_number, gint *out_presence_h, GCancellable *cancellable, GError **error); diff --git a/common/ic-dbus.xml b/common/ic-dbus.xml index 76e17d1..47ab87d 100644 --- a/common/ic-dbus.xml +++ b/common/ic-dbus.xml @@ -48,39 +48,39 @@ - + - + - + - + - + - + @@ -94,13 +94,13 @@ - + - + diff --git a/daemon/icd-dbus.c b/daemon/icd-dbus.c index 4f69b48..54feb37 100644 --- a/daemon/icd-dbus.c +++ b/daemon/icd-dbus.c @@ -26,18 +26,18 @@ static GDBusConnection *icd_dbus_conn; static icDbus *icd_dbus_object; -int icd_dbus_emit_signal(const char *sig_name, GVariant *value) +int icd_dbus_emit_signal(const char *signal_name, const char *sender, GVariant *value) { gboolean ret; GError *error = NULL; - DBG("SIG : %s, %s", sig_name, g_variant_print(value, FALSE)); + DBG("SIG : %s, %s", signal_name, g_variant_print(value, FALSE)); ret = g_dbus_connection_emit_signal(icd_dbus_conn, - NULL, + sender, IOTCON_DBUS_OBJPATH, IOTCON_DBUS_INTERFACE, - sig_name, + signal_name, value, &error); if (FALSE == ret) { @@ -58,15 +58,14 @@ int icd_dbus_emit_signal(const char *sig_name, GVariant *value) static gboolean _dbus_handle_register_resource(icDbus *object, GDBusMethodInvocation *invocation, - const gchar *arg_uri, - const gchar* const *arg_resource_types, - gint arg_ifaces, - guchar arg_properties) + const gchar *uri, + const gchar* const *resource_types, + gint ifaces, + guchar properties) { void *handle = NULL; - handle = icd_ioty_register_resource(arg_uri, arg_resource_types, arg_ifaces, - arg_properties); + handle = icd_ioty_register_resource(uri, resource_types, ifaces, properties); if (NULL == handle) ERR("icd_ioty_register_resource() Fail"); @@ -77,11 +76,11 @@ static gboolean _dbus_handle_register_resource(icDbus *object, static gboolean _dbus_handle_unregister_resource(icDbus *object, - GDBusMethodInvocation *invocation, gint arg_resource) + GDBusMethodInvocation *invocation, gint resource) { int ret; - ret = icd_ioty_unregister_resource(GINT_TO_POINTER(arg_resource)); + ret = icd_ioty_unregister_resource(GINT_TO_POINTER(resource)); if (IOTCON_ERROR_NONE != ret) ERR("icd_ioty_unregister_resource() Fail(%d)", ret); @@ -92,11 +91,11 @@ static gboolean _dbus_handle_unregister_resource(icDbus *object, static gboolean _dbus_handle_bind_interface(icDbus *object, - GDBusMethodInvocation *invocation, gint arg_resource, gint arg_iface) + GDBusMethodInvocation *invocation, gint resource, gint iface) { int ret; - ret = icd_ioty_bind_interface(GINT_TO_POINTER(arg_resource), arg_iface); + ret = icd_ioty_bind_interface(GINT_TO_POINTER(resource), iface); if (IOTCON_ERROR_NONE != ret) ERR("icd_ioty_bind_interface() Fail(%d)", ret); @@ -107,11 +106,11 @@ static gboolean _dbus_handle_bind_interface(icDbus *object, static gboolean _dbus_handle_bind_type(icDbus *object, - GDBusMethodInvocation *invocation, gint arg_resource, const gchar *arg_type) + GDBusMethodInvocation *invocation, gint resource, const gchar *type) { int ret; - ret = icd_ioty_bind_type(GINT_TO_POINTER(arg_resource), arg_type); + ret = icd_ioty_bind_type(GINT_TO_POINTER(resource), type); if (IOTCON_ERROR_NONE != ret) ERR("icd_ioty_bind_type() Fail(%d)", ret); @@ -122,11 +121,11 @@ static gboolean _dbus_handle_bind_type(icDbus *object, static gboolean _dbus_handle_bind_resource(icDbus *object, - GDBusMethodInvocation *invocation, gint arg_parent, gint arg_child) + GDBusMethodInvocation *invocation, gint parent, gint child) { int ret; - ret = icd_ioty_bind_resource(GINT_TO_POINTER(arg_parent), GINT_TO_POINTER(arg_child)); + ret = icd_ioty_bind_resource(GINT_TO_POINTER(parent), GINT_TO_POINTER(child)); if (IOTCON_ERROR_NONE != ret) ERR("icd_ioty_bind_resource() Fail(%d)", ret); @@ -137,12 +136,11 @@ static gboolean _dbus_handle_bind_resource(icDbus *object, static gboolean _dbus_handle_unbind_resource(icDbus *object, - GDBusMethodInvocation *invocation, gint arg_parent, gint arg_child) + GDBusMethodInvocation *invocation, gint parent, gint child) { int ret; - ret = icd_ioty_unbind_resource(GINT_TO_POINTER(arg_parent), - GINT_TO_POINTER(arg_child)); + ret = icd_ioty_unbind_resource(GINT_TO_POINTER(parent), GINT_TO_POINTER(child)); if (IOTCON_ERROR_NONE != ret) ERR("icd_ioty_unbind_resource() Fail(%d)", ret); @@ -154,13 +152,15 @@ static gboolean _dbus_handle_unbind_resource(icDbus *object, static gboolean _dbus_handle_find_resource(icDbus *object, GDBusMethodInvocation *invocation, - const gchar *arg_host_address, - const gchar *arg_type, - const gchar *sig_name) + const gchar *host_address, + const gchar *type, + guint signal_number) { int ret; + const gchar *sender; - ret = icd_ioty_find_resource(arg_host_address, arg_type, sig_name); + sender = g_dbus_method_invocation_get_sender(invocation); + ret = icd_ioty_find_resource(host_address, type, signal_number, sender); if (IOTCON_ERROR_NONE != ret) ERR("icd_ioty_find_resource() Fail(%d)", ret); @@ -171,11 +171,13 @@ static gboolean _dbus_handle_find_resource(icDbus *object, static gboolean _dbus_handle_get(icDbus *object, GDBusMethodInvocation *invocation, - GVariant *arg_client, GVariant *arg_query, const gchar *sig_name) + GVariant *client, GVariant *query, guint signal_number) { int ret; + const gchar *sender; - ret = icd_ioty_get(arg_client, arg_query, sig_name); + sender = g_dbus_method_invocation_get_sender(invocation); + ret = icd_ioty_get(client, query, signal_number, sender); if (IOTCON_ERROR_NONE != ret) ERR("icd_ioty_get() Fail(%d)", ret); @@ -187,14 +189,16 @@ static gboolean _dbus_handle_get(icDbus *object, GDBusMethodInvocation *invocati static gboolean _dbus_handle_put(icDbus *object, GDBusMethodInvocation *invocation, - GVariant *arg_client, - const gchar *arg_repr, - GVariant *arg_query, - const gchar *sig_name) + GVariant *client, + const gchar *repr, + GVariant *query, + guint signal_number) { int ret; + const gchar *sender; - ret = icd_ioty_put(arg_client, arg_repr, arg_query, sig_name); + sender = g_dbus_method_invocation_get_sender(invocation); + ret = icd_ioty_put(client, repr, query, signal_number, sender); if (IOTCON_ERROR_NONE != ret) ERR("icd_ioty_put() Fail(%d)", ret); @@ -206,14 +210,16 @@ static gboolean _dbus_handle_put(icDbus *object, static gboolean _dbus_handle_post(icDbus *object, GDBusMethodInvocation *invocation, - GVariant *arg_client, - const gchar *arg_repr, - GVariant *arg_query, - const gchar *sig_name) + GVariant *client, + const gchar *repr, + GVariant *query, + guint signal_number) { int ret; + const gchar *sender; - ret = icd_ioty_post(arg_client, arg_repr, arg_query, sig_name); + sender = g_dbus_method_invocation_get_sender(invocation); + ret = icd_ioty_post(client, repr, query, signal_number, sender); if (IOTCON_ERROR_NONE != ret) ERR("icd_ioty_post() Fail(%d)", ret); @@ -225,12 +231,14 @@ static gboolean _dbus_handle_post(icDbus *object, static gboolean _dbus_handle_delete(icDbus *object, GDBusMethodInvocation *invocation, - GVariant *arg_client, - const gchar *sig_name) + GVariant *client, + guint signal_number) { int ret; + const gchar *sender; - ret = icd_ioty_delete(arg_client, sig_name); + sender = g_dbus_method_invocation_get_sender(invocation); + ret = icd_ioty_delete(client, signal_number, sender); if (IOTCON_ERROR_NONE != ret) ERR("icd_ioty_delete() Fail(%d)", ret); @@ -242,15 +250,17 @@ static gboolean _dbus_handle_delete(icDbus *object, static gboolean _dbus_handle_observer_start(icDbus *object, GDBusMethodInvocation *invocation, - GVariant *arg_client, - gint arg_observe_type, - GVariant *arg_query, - const gchar *sig_name) + GVariant *client, + gint observe_type, + GVariant *query, + guint signal_number) { int ret; int observe_h; + const gchar *sender; - ret = icd_ioty_observer_start(arg_client, arg_observe_type, arg_query, sig_name, + sender = g_dbus_method_invocation_get_sender(invocation); + ret = icd_ioty_observer_start(client, observe_type, query, signal_number, sender, &observe_h); if (IOTCON_ERROR_NONE != ret) ERR("icd_ioty_observer_start() Fail(%d)", ret); @@ -263,11 +273,11 @@ static gboolean _dbus_handle_observer_start(icDbus *object, static gboolean _dbus_handle_observer_stop(icDbus *object, GDBusMethodInvocation *invocation, - gint arg_observe_h) + gint observe_h) { int ret; - ret = icd_ioty_observer_stop(GINT_TO_POINTER(arg_observe_h)); + ret = icd_ioty_observer_stop(GINT_TO_POINTER(observe_h)); if (IOTCON_ERROR_NONE != ret) ERR("icd_ioty_observer_stop() Fail(%d)", ret); @@ -279,13 +289,13 @@ static gboolean _dbus_handle_observer_stop(icDbus *object, static gboolean _dbus_handle_notify_list_of_observers(icDbus *object, GDBusMethodInvocation *invocation, - gint arg_resource, - GVariant *arg_notify_msg, - GVariant *arg_observers) + gint resource, + GVariant *notify_msg, + GVariant *observers) { int ret; - ret = icd_ioty_notify_list_of_observers(arg_resource, arg_notify_msg, arg_observers); + ret = icd_ioty_notify_list_of_observers(resource, notify_msg, observers); if (IOTCON_ERROR_NONE != ret) ERR("icd_ioty_notify_list_of_observers() Fail(%d)", ret); @@ -296,11 +306,11 @@ static gboolean _dbus_handle_notify_list_of_observers(icDbus *object, static gboolean _dbus_handle_notify_all(icDbus *object, GDBusMethodInvocation *invocation, - gint arg_resource) + gint resource) { int ret; - ret = icd_ioty_notify_all(arg_resource); + ret = icd_ioty_notify_all(resource); if (IOTCON_ERROR_NONE != ret) ERR("icd_ioty_notify_all() Fail(%d)", ret); @@ -311,11 +321,11 @@ static gboolean _dbus_handle_notify_all(icDbus *object, GDBusMethodInvocation *i static gboolean _dbus_handle_send_response(icDbus *object, - GDBusMethodInvocation *invocation, GVariant *arg_response) + GDBusMethodInvocation *invocation, GVariant *response) { int ret; - ret = icd_ioty_send_response(arg_response); + ret = icd_ioty_send_response(response); if (IOTCON_ERROR_NONE != ret) ERR("icd_ioty_send_response() Fail(%d)", ret); @@ -326,11 +336,11 @@ static gboolean _dbus_handle_send_response(icDbus *object, static gboolean _dbus_handle_register_device_info(icDbus *object, - GDBusMethodInvocation *invocation, GVariant *arg_device_info) + GDBusMethodInvocation *invocation, GVariant *device_info) { int ret; - ret = icd_ioty_register_device_info(arg_device_info); + ret = icd_ioty_register_device_info(device_info); if (IOTCON_ERROR_NONE != ret) ERR("icd_ioty_register_device_info() Fail(%d)", ret); @@ -342,12 +352,14 @@ static gboolean _dbus_handle_register_device_info(icDbus *object, static gboolean _dbus_handle_get_device_info(icDbus *object, GDBusMethodInvocation *invocation, - const gchar *arg_host_address, - const gchar *sig_name) + const gchar *host_address, + guint signal_number) { int ret; + const gchar *sender; - ret = icd_ioty_get_device_info(arg_host_address, sig_name); + sender = g_dbus_method_invocation_get_sender(invocation); + ret = icd_ioty_get_device_info(host_address, signal_number, sender); if (IOTCON_ERROR_NONE != ret) ERR("icd_ioty_get_device_info() Fail(%d)", ret); @@ -359,11 +371,11 @@ static gboolean _dbus_handle_get_device_info(icDbus *object, static gboolean _dbus_handle_start_presence(icDbus *object, GDBusMethodInvocation *invocation, - guint arg_time_to_live) + guint time_to_live) { int ret; - ret = icd_ioty_start_presence(arg_time_to_live); + ret = icd_ioty_start_presence(time_to_live); if (IOTCON_ERROR_NONE != ret) ERR("icd_ioty_start_presence() Fail(%d)", ret); @@ -390,13 +402,15 @@ static gboolean _dbus_handle_stop_presence(icDbus *object, static gboolean _dbus_handle_subscribe_presence(icDbus *object, GDBusMethodInvocation *invocation, - const gchar *arg_host_address, - const gchar *arg_type, - const gchar *sig_name) + const gchar *host_address, + const gchar *type, + guint signal_number) { void *presence_h; + const gchar *sender; - presence_h = icd_ioty_subscribe_presence(arg_host_address, arg_type, sig_name); + sender = g_dbus_method_invocation_get_sender(invocation); + presence_h = icd_ioty_subscribe_presence(host_address, type, signal_number, sender); if (NULL == presence_h) ERR("icd_ioty_subscribe_presence() Fail"); @@ -409,11 +423,11 @@ static gboolean _dbus_handle_subscribe_presence(icDbus *object, static gboolean _dbus_handle_unsubscribe_presence(icDbus *object, GDBusMethodInvocation *invocation, - gint arg_presence_h) + gint presence_h) { int ret; - ret = icd_ioty_unsubscribe_presence(GINT_TO_POINTER(arg_presence_h)); + ret = icd_ioty_unsubscribe_presence(GINT_TO_POINTER(presence_h)); if (IOTCON_ERROR_NONE != ret) ERR("icd_ioty_unsubscribe_presence() Fail(%d)", ret); diff --git a/daemon/icd-dbus.h b/daemon/icd-dbus.h index 796f41d..f344bb2 100644 --- a/daemon/icd-dbus.h +++ b/daemon/icd-dbus.h @@ -16,7 +16,7 @@ #ifndef __IOT_CONNECTIVITY_MANAGER_DAEMON_DBUS_H__ #define __IOT_CONNECTIVITY_MANAGER_DAEMON_DBUS_H__ -int icd_dbus_emit_signal(const char *sig_name, GVariant *value); +int icd_dbus_emit_signal(const char *sig_name, const char *sender, GVariant *value); unsigned int icd_dbus_init(); void icd_dbus_deinit(unsigned int id); diff --git a/daemon/icd-ioty.cpp b/daemon/icd-ioty.cpp index 12374fc..72f9b1b 100644 --- a/daemon/icd-ioty.cpp +++ b/daemon/icd-ioty.cpp @@ -47,12 +47,14 @@ namespace icdIotivityHandler { class getObject { private: - string sig_name; + unsigned int m_signalNumber; + string m_sender; public: - getObject(const char *user_data) + getObject(unsigned int signalNumber, const char *sender) { - sig_name = user_data; + m_signalNumber = signalNumber; + m_sender = sender; } void onGet(const HeaderOptions& headerOptions, const OCRepresentation& ocRep, @@ -63,6 +65,7 @@ namespace icdIotivityHandler { GVariant *value; GVariantBuilder *options; GVariantBuilder *repr; + char signal_name[IC_DBUS_SIGNAL_LENGTH] = {0}; if (OC_STACK_OK == eCode) { res = IOTCON_RESPONSE_RESULT_OK; @@ -88,19 +91,23 @@ namespace icdIotivityHandler { g_variant_builder_unref(options); g_variant_builder_unref(repr); - icd_dbus_emit_signal(sig_name.c_str(), value); + snprintf(signal_name, sizeof(signal_name), "%s_%u", IC_DBUS_SIGNAL_GET, + m_signalNumber); + icd_dbus_emit_signal(signal_name, m_sender.c_str(), value); } }; class putObject { private: - string sig_name; + unsigned int m_signalNumber; + string m_sender; public: - putObject(const char *user_data) + putObject(unsigned int signalNumber, const char *sender) { - sig_name = user_data; + m_signalNumber = signalNumber; + m_sender = sender; } void onPut(const HeaderOptions& headerOptions, const OCRepresentation& ocRep, @@ -111,6 +118,7 @@ namespace icdIotivityHandler { GVariant *value; GVariantBuilder *options; GVariantBuilder *repr; + char signal_name[IC_DBUS_SIGNAL_LENGTH] = {0}; if (OC_STACK_OK == eCode) { res = IOTCON_RESPONSE_RESULT_OK; @@ -136,19 +144,23 @@ namespace icdIotivityHandler { g_variant_builder_unref(options); g_variant_builder_unref(repr); - icd_dbus_emit_signal(sig_name.c_str(), value); + snprintf(signal_name, sizeof(signal_name), "%s_%u", IC_DBUS_SIGNAL_PUT, + m_signalNumber); + icd_dbus_emit_signal(signal_name, m_sender.c_str(), value); } }; class postObject { private: - string sig_name; + unsigned int m_signalNumber; + string m_sender; public: - postObject(const char *user_data) + postObject(unsigned int signalNumber, const char *sender) { - sig_name = user_data; + m_signalNumber = signalNumber; + m_sender = sender; } void onPost(const HeaderOptions& headerOptions, const OCRepresentation& ocRep, @@ -159,6 +171,7 @@ namespace icdIotivityHandler { GVariant *value; GVariantBuilder *options; GVariantBuilder *repr; + char signal_name[IC_DBUS_SIGNAL_LENGTH] = {0}; if (OC_STACK_OK == eCode) { res = IOTCON_RESPONSE_RESULT_OK; @@ -186,19 +199,23 @@ namespace icdIotivityHandler { g_variant_builder_unref(options); g_variant_builder_unref(repr); - icd_dbus_emit_signal(sig_name.c_str(), value); + snprintf(signal_name, sizeof(signal_name), "%s_%u", IC_DBUS_SIGNAL_POST, + m_signalNumber); + icd_dbus_emit_signal(signal_name, m_sender.c_str(), value); } }; class deleteObject { private: - string sig_name; + unsigned int m_signalNumber; + string m_sender; public: - deleteObject(const char *user_data) + deleteObject(unsigned int signalNumber, const char *sender) { - sig_name = user_data; + m_signalNumber = signalNumber; + m_sender = sender; } void onDelete(const HeaderOptions& headerOptions, const int eCode) @@ -206,6 +223,7 @@ namespace icdIotivityHandler { int res; GVariant *value; GVariantBuilder *options; + char signal_name[IC_DBUS_SIGNAL_LENGTH] = {0}; if (OC_STACK_OK == eCode) { res = IOTCON_RESPONSE_RESULT_OK; @@ -225,19 +243,23 @@ namespace icdIotivityHandler { value = g_variant_new("(a(qs)i)", options, res); g_variant_builder_unref(options); - icd_dbus_emit_signal(sig_name.c_str(), value); + snprintf(signal_name, sizeof(signal_name), "%s_%u", IC_DBUS_SIGNAL_DELETE, + m_signalNumber); + icd_dbus_emit_signal(signal_name, m_sender.c_str(), value); } }; class observeObject { private: - string sig_name; + unsigned int m_signalNumber; + string m_sender; public: - observeObject(const char *user_data) + observeObject(unsigned int signalNumber, const char *sender) { - sig_name = user_data; + m_signalNumber = signalNumber; + m_sender = sender; } void onObserve(const HeaderOptions& headerOptions, const OCRepresentation& ocRep, @@ -248,6 +270,7 @@ namespace icdIotivityHandler { GVariant *value; GVariantBuilder *options; GVariantBuilder *repr; + char signal_name[IC_DBUS_SIGNAL_LENGTH] = {0}; if (OC_STACK_OK == eCode) { res = IOTCON_RESPONSE_RESULT_OK; @@ -272,19 +295,23 @@ namespace icdIotivityHandler { g_variant_builder_unref(options); g_variant_builder_unref(repr); - icd_dbus_emit_signal(sig_name.c_str(), value); + snprintf(signal_name, sizeof(signal_name), "%s_%u", IC_DBUS_SIGNAL_OBSERVE, + m_signalNumber); + icd_dbus_emit_signal(signal_name, m_sender.c_str(), value); } }; class findObject { private: - string sig_name; + unsigned int m_signalNumber; + string m_sender; public: - findObject(const char *user_data) + findObject(unsigned int signalNumber, const char *sender) { - sig_name = user_data; + m_signalNumber = signalNumber; + m_sender = sender; } void foundResource(shared_ptr resource) @@ -294,14 +321,13 @@ namespace icdIotivityHandler { GVariant *value; GVariantBuilder *builder; string resource_host; + char signal_name[IC_DBUS_SIGNAL_LENGTH] = {0}; builder = g_variant_builder_new(G_VARIANT_TYPE("as")); vector resource_types = resource->getResourceTypes(); if (0 < resource_types.size()) { - for (string &resource_type : resource_types) { - INFO("type : %s", resource_type.c_str()); + for (string &resource_type : resource_types) g_variant_builder_add(builder, "s", resource_type.c_str()); - } } vector resource_interfaces = resource->getResourceInterfaces(); @@ -330,25 +356,30 @@ namespace icdIotivityHandler { ifaces); g_variant_builder_unref(builder); - icd_dbus_emit_signal(sig_name.c_str(), value); + snprintf(signal_name, sizeof(signal_name), "%s_%u", IC_DBUS_SIGNAL_FOUND_RESOURCE, + m_signalNumber); + icd_dbus_emit_signal(signal_name, m_sender.c_str(), value); } }; class deviceObject { private: - string sig_name; + unsigned int m_signalNumber; + string m_sender; public: - deviceObject(const char *user_data) + deviceObject(unsigned int signalNumber, const char *sender) { - sig_name = user_data; + m_signalNumber = signalNumber; + m_sender = sender; } void receivedDeviceInfo(const OCRepresentation& ocRep) { FN_CALL; GVariant *value; + char signal_name[IC_DBUS_SIGNAL_LENGTH] = {0}; string contentType; string dateOfManufacture; @@ -390,19 +421,23 @@ namespace icdIotivityHandler { firmwareVersion.c_str(), supportUrl.c_str()); - icd_dbus_emit_signal(sig_name.c_str(), value); + snprintf(signal_name, sizeof(signal_name), "%s_%u", IC_DBUS_SIGNAL_DEVICE, + m_signalNumber); + icd_dbus_emit_signal(signal_name, m_sender.c_str(), value); } }; class presenceObject { private: - string sig_name; + unsigned int m_signalNumber; + string m_sender; public: - presenceObject(const char *user_data) + presenceObject(unsigned int signalNumber, const char *sender) { - sig_name = user_data; + m_signalNumber = signalNumber; + m_sender = sender; } void presenceHandler(OCStackResult result, const unsigned int nonce, @@ -410,6 +445,7 @@ namespace icdIotivityHandler { { int res; GVariant *value; + char signal_name[IC_DBUS_SIGNAL_LENGTH] = {0}; switch (result) { case OC_STACK_OK: @@ -429,7 +465,9 @@ namespace icdIotivityHandler { value = g_variant_new("(ius)", res, nonce, hostAddress.c_str()); - icd_dbus_emit_signal(sig_name.c_str(), value); + snprintf(signal_name, sizeof(signal_name), "%s_%u", IC_DBUS_SIGNAL_PRESENCE, + m_signalNumber); + icd_dbus_emit_signal(signal_name, m_sender.c_str(), value); } }; } @@ -439,10 +477,10 @@ extern "C" void icd_ioty_config(const char *addr, unsigned short port) { PlatformConfig cfg { ServiceType::InProc, - ModeType::Both, - string(addr), - port, - QualityOfService::HighQos + ModeType::Both, + string(addr), + port, + QualityOfService::HighQos }; Configure(cfg); DBG("Created a platform"); @@ -547,8 +585,9 @@ static OCEntityHandlerResult _icd_ioty_request_handler( g_variant_builder_unref(query); g_variant_builder_unref(repr); - snprintf(sig_name, sizeof(sig_name), "reg%u", resource_handle); - icd_dbus_emit_signal(sig_name, value); + snprintf(sig_name, sizeof(sig_name), "%s_%u", IC_DBUS_SIGNAL_REQUEST_HANDLER, + resource_handle); + icd_dbus_emit_signal(sig_name, NULL, value); return OC_EH_OK; } @@ -868,9 +907,8 @@ extern "C" int icd_ioty_send_response(GVariant *resp) } - extern "C" int icd_ioty_find_resource(const char *host_address, const char *resource_type, - const char *sig_name) + unsigned int signal_number, const char *sender) { FN_CALL; OCStackResult ret; @@ -887,7 +925,7 @@ extern "C" int icd_ioty_find_resource(const char *host_address, const char *reso resource_name << "?rt=" << resource_type; shared_ptr object - = make_shared(sig_name); + = make_shared(signal_number, sender); FindCallback findCallback = bind(&icdIotivityHandler::findObject::foundResource, object, placeholders::_1); @@ -959,15 +997,15 @@ static OCResource::Ptr _icd_ioty_create_oc_resource(GVariant *client) } -extern "C" int icd_ioty_get(GVariant *resource, GVariant *query, const char *sig_name) +extern "C" int icd_ioty_get(GVariant *resource, GVariant *query, + unsigned int signal_number, const char *sender) { FN_CALL; OCStackResult ret; OCResource::Ptr ocResource; QueryParamsMap queryParams; GVariantIter *queryIter; - char *key; - char *value; + char *key, *value; g_variant_get(query, "a(ss)", &queryIter); while (g_variant_iter_loop(queryIter, "(&s&s)", &key, &value)) @@ -977,7 +1015,7 @@ extern "C" int icd_ioty_get(GVariant *resource, GVariant *query, const char *sig ocResource = _icd_ioty_create_oc_resource(resource); shared_ptr object - = make_shared(sig_name); + = make_shared(signal_number, sender); GetCallback getCallback = bind(&icdIotivityHandler::getObject::onGet, object, placeholders::_1, placeholders::_2, placeholders::_3); ret = ocResource->get(queryParams, getCallback); @@ -991,7 +1029,7 @@ extern "C" int icd_ioty_get(GVariant *resource, GVariant *query, const char *sig extern "C" int icd_ioty_put(GVariant *resource, const char *repr, GVariant *query, - const char *sig_name) + unsigned int signal_number, const char *sender) { FN_CALL; int ret; @@ -1000,8 +1038,7 @@ extern "C" int icd_ioty_put(GVariant *resource, const char *repr, GVariant *quer QueryParamsMap queryParams; OCRepresentation ocRep; GVariantIter *queryIter; - char *key; - char *value; + char *key, *value; g_variant_get(query, "a(ss)", &queryIter); while (g_variant_iter_loop(queryIter, "(&s&s)", &key, &value)) @@ -1017,7 +1054,7 @@ extern "C" int icd_ioty_put(GVariant *resource, const char *repr, GVariant *quer ocResource = _icd_ioty_create_oc_resource(resource); shared_ptr object - = make_shared(sig_name); + = make_shared(signal_number, sender); PutCallback putCallback = bind(&icdIotivityHandler::putObject::onPut, object, placeholders::_1, placeholders::_2, placeholders::_3); @@ -1032,7 +1069,7 @@ extern "C" int icd_ioty_put(GVariant *resource, const char *repr, GVariant *quer extern "C" int icd_ioty_post(GVariant *resource, const char *repr, GVariant *query, - const char *sig_name) + unsigned int signal_number, const char *sender) { FN_CALL; int ret; @@ -1041,8 +1078,7 @@ extern "C" int icd_ioty_post(GVariant *resource, const char *repr, GVariant *que QueryParamsMap queryParams; OCRepresentation ocRep; GVariantIter *queryIter; - char *key; - char *value; + char *key, *value; g_variant_get(query, "a(ss)", &queryIter); while (g_variant_iter_loop(queryIter, "(&s&s)", &key, &value)) @@ -1058,7 +1094,7 @@ extern "C" int icd_ioty_post(GVariant *resource, const char *repr, GVariant *que ocResource = _icd_ioty_create_oc_resource(resource); shared_ptr object - = make_shared(sig_name); + = make_shared(signal_number, sender); PostCallback postCallback = bind(&icdIotivityHandler::postObject::onPost, object, placeholders::_1, placeholders::_2, placeholders::_3); @@ -1072,7 +1108,8 @@ extern "C" int icd_ioty_post(GVariant *resource, const char *repr, GVariant *que } -extern "C" int icd_ioty_delete(GVariant *resource, const char *sig_name) +extern "C" int icd_ioty_delete(GVariant *resource, unsigned int signal_number, + const char *sender) { FN_CALL; OCStackResult ret; @@ -1081,7 +1118,7 @@ extern "C" int icd_ioty_delete(GVariant *resource, const char *sig_name) ocResource = _icd_ioty_create_oc_resource(resource); shared_ptr object - = make_shared(sig_name); + = make_shared(signal_number, sender); DeleteCallback deleteCallback = bind(&icdIotivityHandler::deleteObject::onDelete, object, placeholders::_1, placeholders::_2); @@ -1095,8 +1132,8 @@ extern "C" int icd_ioty_delete(GVariant *resource, const char *sig_name) } -extern "C" int icd_ioty_observer_start(GVariant *resource, int observe_type, GVariant *query, - const char *sig_name, int *observe_h) +extern "C" int icd_ioty_observer_start(GVariant *resource, int observe_type, + GVariant *query, unsigned int signal_number, const char *sender, int *observe_h) { OCStackResult ret; OCResource::Ptr ocResource; @@ -1104,8 +1141,7 @@ extern "C" int icd_ioty_observer_start(GVariant *resource, int observe_type, GVa QueryParamsMap queryParams; OCRepresentation ocRep; GVariantIter *queryIter; - char *key; - char *value; + char *key, *value; g_variant_get(query, "a(ss)", &queryIter); while (g_variant_iter_loop(queryIter, "(&s&s)", &key, &value)) @@ -1128,7 +1164,7 @@ extern "C" int icd_ioty_observer_start(GVariant *resource, int observe_type, GVa *observe_h = GPOINTER_TO_INT((void*)obs_h); shared_ptr object - = make_shared(sig_name); + = make_shared(signal_number, sender); ObserveCallback observeCallback = bind(&icdIotivityHandler::observeObject::onObserve, object, placeholders::_1, placeholders::_2, placeholders::_3, placeholders::_4); @@ -1193,14 +1229,14 @@ extern "C" int icd_ioty_register_device_info(GVariant *value) extern "C" int icd_ioty_get_device_info(const char *host_address, - const char *sig_name) + unsigned int signal_number, const char *sender) { FN_CALL; OCStackResult ret; string resHost = string(ICD_COAP) + host_address + string(ICD_DEVICE_DISCOVERY); shared_ptr object - = make_shared(sig_name); + = make_shared(signal_number, sender); FindDeviceCallback findDeviceCallback = bind( &icdIotivityHandler::deviceObject::receivedDeviceInfo, object, @@ -1217,15 +1253,14 @@ extern "C" int icd_ioty_get_device_info(const char *host_address, extern "C" iotcon_presence_h icd_ioty_subscribe_presence(const char *host_address, - const char *resource_type, - const char *sig_name) + const char *resource_type, unsigned int signal_number, const char *sender) { OCStackResult ret; iotcon_presence_h presence_handle = NULL; string host; shared_ptr object - = make_shared(sig_name); + = make_shared(signal_number, sender); SubscribeCallback subscribeCallback = bind(&icdIotivityHandler::presenceObject::presenceHandler, object, placeholders::_1, placeholders::_2, placeholders::_3); diff --git a/daemon/icd-ioty.h b/daemon/icd-ioty.h index 18c4c85..c5f921e 100644 --- a/daemon/icd-ioty.h +++ b/daemon/icd-ioty.h @@ -22,8 +22,8 @@ void icd_ioty_config(const char *addr, unsigned short port); -void* icd_ioty_register_resource(const char *uri, const char* const* res_types, int ifaces, - uint8_t properties); +void* icd_ioty_register_resource(const char *uri, const char* const* res_types, + int ifaces, uint8_t properties); int icd_ioty_unregister_resource(iotcon_resource_h resource_handle); @@ -42,29 +42,31 @@ int icd_ioty_notify_all(int resHandle); int icd_ioty_send_response(GVariant *resp); int icd_ioty_find_resource(const char *host_address, const char *resource_type, - const char *sig_name); + unsigned int signal_number, const char *sender); -int icd_ioty_get(GVariant *resource, GVariant *query, const char *sig_name); +int icd_ioty_get(GVariant *resource, GVariant *query, unsigned int signal_number, + const char *sender); int icd_ioty_put(GVariant *resource, const char *repr, GVariant *query, - const char *sig_name); + unsigned int signal_number, const char *sender); int icd_ioty_post(GVariant *resource, const char *repr, GVariant *query, - const char *sig_name); + unsigned int signal_number, const char *sender); -int icd_ioty_delete(GVariant *resource, const char *sig_name); +int icd_ioty_delete(GVariant *resource, unsigned int signal_number, const char *sender); int icd_ioty_observer_start(GVariant *resource, int observe_type, GVariant *query, - const char *sig_name, int *observe_h); + unsigned int signal_number, const char *sender, int *observe_h); int icd_ioty_observer_stop(void *observe_h); int icd_ioty_register_device_info(GVariant *value); -int icd_ioty_get_device_info(const char *host_address, const char *sig_name); +int icd_ioty_get_device_info(const char *host_address, unsigned int signal_number, + const char *sender); iotcon_presence_h icd_ioty_subscribe_presence(const char *host_address, - const char *resource_type, const char *sig_name); + const char *resource_type, unsigned int signal_number, const char *sender); int icd_ioty_unsubscribe_presence(iotcon_presence_h presence_handle); diff --git a/lib/icl-dbus.c b/lib/icl-dbus.c index 758a667..2d6f20f 100644 --- a/lib/icl-dbus.c +++ b/lib/icl-dbus.c @@ -38,6 +38,14 @@ typedef struct { unsigned int id; } icl_cb_container_s; +static inline unsigned int _icl_dbus_generate_signal_number() +{ + static unsigned int i = 0; + + return i++; +} + + static inline int _icl_dbus_get() { if (NULL == icl_dbus_conn) { @@ -196,7 +204,7 @@ void* icl_dbus_register_resource(const char *uri, iotcon_resource_types_h types, int resource_handle; GError *error = NULL; const gchar **res_types; - char sig_name[100]; + char sig_name[IC_DBUS_SIGNAL_LENGTH]; RETV_IF(NULL == icl_dbus_object, NULL); @@ -215,7 +223,10 @@ void* icl_dbus_register_resource(const char *uri, iotcon_resource_types_h types, return NULL; } - snprintf(sig_name, sizeof(sig_name), "reg%u", resource_handle); + /* TODO + * Change how to determine signal_number of request_handler */ + snprintf(sig_name, sizeof(sig_name), "%s_%u", IC_DBUS_SIGNAL_REQUEST_HANDLER, + resource_handle); ret = _dbus_subscribe_signal(sig_name, cb, user_data, _icl_dbus_request_handler); if (IOTCON_ERROR_NONE != ret) { ERR("_dbus_subscribe_signal() Fail"); @@ -438,21 +449,26 @@ int icl_dbus_find_resource(const char *host_address, const char *resource_type, iotcon_found_resource_cb cb, void *user_data) { int ret; + int signal_number; + char signal_name[IC_DBUS_SIGNAL_LENGTH] = {0}; GError *error = NULL; - /* How to determine signal name */ - char *sig_name = "client_find_resource"; RETV_IF(NULL == icl_dbus_object, IOTCON_ERROR_DBUS); + signal_number = _icl_dbus_generate_signal_number(); + ic_dbus_call_find_resource_sync(icl_dbus_object, host_address, resource_type, - sig_name, &ret, NULL, &error); + signal_number, &ret, NULL, &error); if (error) { ERR("ic_dbus_call_find_resource_sync() Fail(%s)", error->message); g_error_free(error); return IOTCON_ERROR_DBUS; } - ret = _dbus_subscribe_signal(sig_name, cb, user_data, _icl_dbus_found_resource); + snprintf(signal_name, sizeof(signal_name), "%s_%u", IC_DBUS_SIGNAL_FOUND_RESOURCE, + signal_number); + + ret = _dbus_subscribe_signal(signal_name, cb, user_data, _icl_dbus_found_resource); if (IOTCON_ERROR_NONE != ret) { ERR("_dbus_subscribe_signal() Fail"); return IOTCON_ERROR_DBUS; @@ -532,15 +548,18 @@ int icl_dbus_get(iotcon_client_h resource, iotcon_query_h query, { int ret; GError *error = NULL; - char *sig_name = "client_get"; + int signal_number; + char signal_name[IC_DBUS_SIGNAL_LENGTH] = {0}; GVariant *arg_client; GVariant *arg_query; RETV_IF(NULL == icl_dbus_object, IOTCON_ERROR_DBUS); + signal_number = _icl_dbus_generate_signal_number(); + arg_client = icl_dbus_client_to_gvariant(resource); arg_query = icl_dbus_query_to_gvariant(query); - ic_dbus_call_get_sync(icl_dbus_object, arg_client, arg_query, sig_name, + ic_dbus_call_get_sync(icl_dbus_object, arg_client, arg_query, signal_number, &ret, NULL, &error); if (error) { ERR("ic_dbus_call_get_sync() Fail(%s)", error->message); @@ -550,7 +569,10 @@ int icl_dbus_get(iotcon_client_h resource, iotcon_query_h query, return IOTCON_ERROR_DBUS; } - ret = _dbus_subscribe_signal(sig_name, cb, user_data, _icl_dbus_on_cru); + snprintf(signal_name, sizeof(signal_name), "%s_%u", IC_DBUS_SIGNAL_GET, + signal_number); + + ret = _dbus_subscribe_signal(signal_name, cb, user_data, _icl_dbus_on_cru); if (IOTCON_ERROR_NONE != ret) { ERR("_dbus_subscribe_signal() Fail"); return IOTCON_ERROR_DBUS; @@ -565,13 +587,16 @@ int icl_dbus_put(iotcon_client_h resource, iotcon_repr_h repr, { int ret; GError *error = NULL; - char *sig_name = "client_put"; + int signal_number; + char signal_name[IC_DBUS_SIGNAL_LENGTH] = {0}; char *arg_repr; GVariant *arg_client; GVariant *arg_query; RETV_IF(NULL == icl_dbus_object, IOTCON_ERROR_DBUS); + signal_number = _icl_dbus_generate_signal_number(); + arg_repr = icl_repr_generate_json(repr, FALSE); if (NULL == arg_repr) { ERR("icl_repr_generate_json() Fail"); @@ -582,7 +607,7 @@ int icl_dbus_put(iotcon_client_h resource, iotcon_repr_h repr, arg_query = icl_dbus_query_to_gvariant(query); ic_dbus_call_put_sync(icl_dbus_object, arg_client, arg_repr, arg_query, - sig_name, &ret, NULL, &error); + signal_number, &ret, NULL, &error); if (error) { ERR("ic_dbus_call_put_sync() Fail(%s)", error->message); g_error_free(error); @@ -592,7 +617,10 @@ int icl_dbus_put(iotcon_client_h resource, iotcon_repr_h repr, return IOTCON_ERROR_DBUS; } - ret = _dbus_subscribe_signal(sig_name, cb, user_data, _icl_dbus_on_cru); + snprintf(signal_name, sizeof(signal_name), "%s_%u", IC_DBUS_SIGNAL_PUT, + signal_number); + + ret = _dbus_subscribe_signal(signal_name, cb, user_data, _icl_dbus_on_cru); if (IOTCON_ERROR_NONE != ret) { ERR("_dbus_subscribe_signal() Fail"); free(arg_repr); @@ -610,13 +638,16 @@ int icl_dbus_post(iotcon_client_h resource, iotcon_repr_h repr, { int ret; GError *error = NULL; - char *sig_name = "client_post"; + int signal_number; + char signal_name[IC_DBUS_SIGNAL_LENGTH] = {0}; char *arg_repr; GVariant *arg_client; GVariant *arg_query; RETV_IF(NULL == icl_dbus_object, IOTCON_ERROR_DBUS); + signal_number = _icl_dbus_generate_signal_number(); + arg_repr = icl_repr_generate_json(repr, FALSE); if (NULL == arg_repr) { ERR("icl_repr_generate_json() Fail"); @@ -627,7 +658,7 @@ int icl_dbus_post(iotcon_client_h resource, iotcon_repr_h repr, arg_query = icl_dbus_query_to_gvariant(query); ic_dbus_call_post_sync(icl_dbus_object, arg_client, arg_repr, arg_query, - sig_name, &ret, NULL, &error); + signal_number, &ret, NULL, &error); if (error) { ERR("ic_dbus_call_post_sync() Fail(%s)", error->message); g_error_free(error); @@ -637,7 +668,10 @@ int icl_dbus_post(iotcon_client_h resource, iotcon_repr_h repr, return IOTCON_ERROR_DBUS; } - ret = _dbus_subscribe_signal(sig_name, cb, user_data, _icl_dbus_on_cru); + snprintf(signal_name, sizeof(signal_name), "%s_%u", IC_DBUS_SIGNAL_POST, + signal_number); + + ret = _dbus_subscribe_signal(signal_name, cb, user_data, _icl_dbus_on_cru); if (IOTCON_ERROR_NONE != ret) { ERR("_dbus_subscribe_signal() Fail"); free(arg_repr); @@ -691,14 +725,17 @@ int icl_dbus_delete(iotcon_client_h resource, iotcon_on_delete_cb cb, { int ret; GError *error = NULL; - char *sig_name = "client_delete"; + int signal_number; + char signal_name[IC_DBUS_SIGNAL_LENGTH] = {0}; GVariant *arg_client; RETV_IF(NULL == icl_dbus_object, IOTCON_ERROR_DBUS); + signal_number = _icl_dbus_generate_signal_number(); + arg_client = icl_dbus_client_to_gvariant(resource); - ic_dbus_call_delete_sync(icl_dbus_object, arg_client, sig_name, &ret, NULL, + ic_dbus_call_delete_sync(icl_dbus_object, arg_client, signal_number, &ret, NULL, &error); if (error) { ERR("ic_dbus_call_delete_sync() Fail(%s)", error->message); @@ -707,7 +744,10 @@ int icl_dbus_delete(iotcon_client_h resource, iotcon_on_delete_cb cb, return IOTCON_ERROR_DBUS; } - ret = _dbus_subscribe_signal(sig_name, cb, user_data, _icl_dbus_on_delete); + snprintf(signal_name, sizeof(signal_name), "%s_%u", IC_DBUS_SIGNAL_DELETE, + signal_number); + + ret = _dbus_subscribe_signal(signal_name, cb, user_data, _icl_dbus_on_delete); if (IOTCON_ERROR_NONE != ret) { ERR("_dbus_subscribe_signal() Fail"); return IOTCON_ERROR_DBUS; @@ -790,17 +830,20 @@ int icl_dbus_observer_start(iotcon_client_h resource, int ret; int observe_h; GError *error = NULL; - char *sig_name = "client_observe"; + int signal_number; + char signal_name[IC_DBUS_SIGNAL_LENGTH] = {0}; GVariant *arg_client; GVariant *arg_query; RETV_IF(NULL == icl_dbus_object, IOTCON_ERROR_DBUS); + signal_number = _icl_dbus_generate_signal_number(); + arg_client = icl_dbus_client_to_gvariant(resource); arg_query = icl_dbus_query_to_gvariant(query); ic_dbus_call_observer_start_sync(icl_dbus_object, arg_client, observe_type, - arg_query, sig_name, &observe_h, &ret, NULL, &error); + arg_query, signal_number, &observe_h, &ret, NULL, &error); if (error) { ERR("ic_dbus_call_observer_start_sync() Fail(%s)", error->message); g_error_free(error); @@ -811,7 +854,10 @@ int icl_dbus_observer_start(iotcon_client_h resource, resource->observe_handle = observe_h; - ret = _dbus_subscribe_signal(sig_name, cb, user_data, _icl_dbus_on_observe); + snprintf(signal_name, sizeof(signal_name), "%s_%u", IC_DBUS_SIGNAL_OBSERVE, + signal_number); + + ret = _dbus_subscribe_signal(signal_name, cb, user_data, _icl_dbus_on_observe); if (IOTCON_ERROR_NONE != ret) { ERR("_dbus_subscribe_signal() Fail"); return IOTCON_ERROR_DBUS; @@ -914,20 +960,26 @@ int icl_dbus_get_device_info(const char *host_address, iotcon_device_info_cb cb, { int ret; GError *error = NULL; - /* How to determine signal name */ - char *sig_name = "client_get_device"; + int signal_number; + char signal_name[IC_DBUS_SIGNAL_LENGTH] = {0}; RETV_IF(NULL == icl_dbus_object, IOTCON_ERROR_DBUS); + signal_number = _icl_dbus_generate_signal_number(); + ic_dbus_call_get_device_info_sync(icl_dbus_object, host_address, - sig_name, &ret, NULL, &error); + signal_number, &ret, NULL, &error); if (error) { ERR("ic_dbus_call_get_device_info_sync() Fail(%s)", error->message); g_error_free(error); return IOTCON_ERROR_DBUS; } - ret = _dbus_subscribe_signal(sig_name, cb, user_data, _icl_dbus_received_device_info); + snprintf(signal_name, sizeof(signal_name), "%s_%u", IC_DBUS_SIGNAL_DEVICE, + signal_number); + + ret = _dbus_subscribe_signal(signal_name, cb, user_data, + _icl_dbus_received_device_info); if (IOTCON_ERROR_NONE != ret) { ERR("_dbus_subscribe_signal() Fail"); return IOTCON_ERROR_DBUS; @@ -1002,20 +1054,25 @@ void* icl_dbus_subscribe_presence(const char *host_address, int ret; int presence_h; GError *error = NULL; - - char *sig_name = "client_subscribe_presence"; + int signal_number; + char signal_name[IC_DBUS_SIGNAL_LENGTH] = {0}; RETV_IF(NULL == icl_dbus_object, NULL); + signal_number = _icl_dbus_generate_signal_number(); + ic_dbus_call_subscribe_presence_sync(icl_dbus_object, host_address, type, - sig_name, &presence_h, NULL, &error); + signal_number, &presence_h, NULL, &error); if (error) { ERR("ic_dbus_call_subscribe_presence_sync() Fail(%s)", error->message); g_error_free(error); return NULL; } - ret = _dbus_subscribe_signal(sig_name, cb, user_data, _icl_dbus_presence_handler); + snprintf(signal_name, sizeof(signal_name), "%s_%u", IC_DBUS_SIGNAL_PRESENCE, + signal_number); + + ret = _dbus_subscribe_signal(signal_name, cb, user_data, _icl_dbus_presence_handler); if (IOTCON_ERROR_NONE != ret) { ERR("_dbus_subscribe_signal() Fail"); return NULL; @@ -1032,8 +1089,8 @@ int icl_dbus_unsubscribe_presence(void *presence_h) RETV_IF(NULL == icl_dbus_object, IOTCON_ERROR_DBUS); - ic_dbus_call_unsubscribe_presence_sync(icl_dbus_object, - GPOINTER_TO_INT(presence_h), &ret, NULL, &error); + ic_dbus_call_unsubscribe_presence_sync(icl_dbus_object, GPOINTER_TO_INT(presence_h), + &ret, NULL, &error); if (error) { ERR("ic_dbus_call_unsubscribe_presence_sync() Fail(%s)", error->message); g_error_free(error);