Add API to insert device payload in a service
authorAbhay agarwal <ay.agarwal@samsung.com>
Mon, 2 Dec 2019 07:19:32 +0000 (12:49 +0530)
committerDoHyun Pyun <dh79.pyun@samsung.com>
Mon, 30 Dec 2019 07:45:56 +0000 (16:45 +0900)
Signed-off-by: Abhay agarwal <ay.agarwal@samsung.com>
include/user-awareness-private.h
include/user-awareness.h
src/user-awareness-payload.c
src/user-awareness-service.c
test/uat-payload.c

index 7e047f7995e07620490c23123c3b73f2f7edbed9..28bcd3e7cfeb6654ed996761a0772a212dbe69af 100644 (file)
@@ -705,6 +705,22 @@ int _ua_service_add_info_to_list(ua_service_info_s* ua_info);
  */
 int _ua_service_add_info_to_list_from_uam_data(uam_service_info_s *uam_info);
 
+/**
+ * @brief Gets a service info as uam_service_info_s from the the list.
+ * @since_tizen 5.5
+ *
+ * @param[in] service_name Service name.
+ *
+ * @return 0 on success, otherwise a negative error value
+ * @retval #UA_ERROR_NONE Successful
+ * @retval #UA_ERROR_OUT_OF_MEMORY Out of memory
+ *
+ * @exception
+ * @pre
+ * @post
+ */
+ua_service_info_s* __ua_get_service_from_list(const char *service_name);
+
 /**
  * @brief Removes a service info from the list.
  * @since_tizen 5.5
index 21fdc2dcd0d12d24f56e94bb151cbc53225e91cd..aad6a2cba154e84ff43c31f360e3e155f49acbd5 100644 (file)
@@ -3042,6 +3042,27 @@ int ua_payload_add(
                ua_payload_h payload_handle,
                ua_device_h device_handle);
 
+/**
+ * @ingroup CAPI_NETWORK_UA_MODULE
+ * @brief Adds device's payload to a service.
+ * @since_tizen 5.5
+ *
+ * @param[in] payload_handle The payload handle.
+ * @param[in] service_handle The service handle.
+ *
+ * @return 0 on success, otherwise a negative error value
+ * @retval #UA_ERROR_NONE Successful
+ * @retval #UA_ERROR_INVALID_PARAMETER Invalid parameter
+ *
+ * @exception
+ * @pre
+ * @post
+ *
+ */
+int ua_payload_add_service(
+               ua_payload_h payload_handle,
+               ua_service_h service_handle);
+
 /**
  * @ingroup CAPI_NETWORK_UA_MODULE
  * @brief Gets sensor's status.
index 71b8a27c0fd806b5da13080a336f0088ad5630c8..ec0ed4d139cb189387b2eb560360738699a2f242 100644 (file)
@@ -222,7 +222,36 @@ int ua_payload_add(ua_payload_h payload_handle, ua_device_h device_handle)
        ret = _ua_get_error_code(_uam_request_add_payload(&uam_payload, dev_info->device_id,
                                                        _ua_to_uam_tech_type(dev_info->type)));
        if (UA_ERROR_NONE != ret) {
-               UA_ERR("_uam_payload_add returned %s",
+               UA_ERR("_uam_request_add_payload returned %s",
+                               _ua_get_error_string(ret));
+               return ret;
+       }
+
+       FUNC_EXIT;
+       return UA_ERROR_NONE;
+}
+
+int ua_payload_add_service(ua_payload_h payload_handle,
+               ua_service_h service_handle)
+{
+       FUNC_ENTRY;
+       int ret;
+       uam_ble_payload_s uam_payload;
+
+       ua_payload_info_s* payload_info = (ua_payload_info_s*)payload_handle;
+       ua_service_info_s* service_info = (ua_service_info_s*)service_handle;
+
+       UA_VALIDATE_INPUT_PARAMETER(payload_handle);
+       UA_VALIDATE_INPUT_PARAMETER(service_handle);
+       UA_VALIDATE_INPUT_PARAMETER(service_info);
+
+       UA_IS_EXIST(__ua_get_service_from_list(service_info->name));
+
+       _ua_get_uam_payload_from_ua(&uam_payload, payload_info);
+
+       ret = _ua_get_error_code(_uam_service_add_payload(service_info->name, &uam_payload));
+       if (UA_ERROR_NONE != ret) {
+               UA_ERR("_uam_service_add_payload returned %s",
                                _ua_get_error_string(ret));
                return ret;
        }
index c7e3dc451672d15e8cb722378c53ebca6e5ee796..cc18dd5d515203ebbf343de53ec8491e57970762 100644 (file)
@@ -26,7 +26,7 @@
 extern GSList *ua_users_list;
 GSList *ua_services_list;
 
-static ua_service_info_s* __ua_get_service_from_list(const char *service_name)
+ua_service_info_s* __ua_get_service_from_list(const char *service_name)
 {
        GSList *l;
        ua_service_info_s *service_info;
index 2e062f8254e66bc9331c032e423f823bb7a78161..fddef8e810531fddb160ab08b828e8c28c71345a 100644 (file)
@@ -24,6 +24,7 @@
 #include "uat-common.h"
 
 extern ua_device_h g_device_h; /**< Device handle */
+extern ua_service_h g_service_h; /**< Service handle */
 ua_payload_h g_payload_h = NULL; /**< Payload handle */
 
 static char g_payload_primary_key[MENU_DATA_SIZE + 1] = {0,}; /**< payload primary_key for the selected device */
@@ -178,6 +179,23 @@ static int run_ua_payload_add(
        return RET_SUCCESS;
 }
 
+static int run_ua_payload_add_service(
+       MManager *mm, struct menu_data *menu)
+{
+       int ret = UA_ERROR_NONE;
+
+       msg("ua_payload_add_service");
+
+       check_if(NULL == g_payload_h);
+
+       ret = ua_payload_add_service(g_payload_h, g_service_h);
+
+       msg(" - ua_payload_add_service() ret: [0x%X] [%s]",
+                       ret, uat_get_error_str(ret));
+
+       return RET_SUCCESS;
+}
+
 static struct menu_data menu_ua_payload_set_primary_key[] = {
        { "1", "Primary Key (0 to 255)",
                NULL, NULL, g_payload_primary_key },
@@ -229,5 +247,7 @@ struct menu_data menu_ua_payloads[] = {
                menu_ua_payload_set_device_uid, NULL, g_payload_device_uid_str },
        { "7", ANSI_COLOR_LIGHTGREEN "ua_payload_add" ANSI_COLOR_NORMAL,
                NULL, run_ua_payload_add, NULL },
+       { "8", ANSI_COLOR_LIGHTGREEN "ua_payload_add_service" ANSI_COLOR_NORMAL,
+               NULL, run_ua_payload_add_service, NULL },
        { NULL, NULL, },
 };