diff options
author | Abhay agarwal <ay.agarwal@samsung.com> | 2019-12-26 19:13:20 +0530 |
---|---|---|
committer | DoHyun Pyun <dh79.pyun@samsung.com> | 2019-12-30 16:45:56 +0900 |
commit | c3ee9bcbf12b883e6b91e5ed5255a5ee0c69e8aa (patch) | |
tree | 6a7ebe59b58965d0aaf456e81425cde7df3a6ef2 | |
parent | d03b76ec99e4af1af82e3156e4af3e018fa3ddd4 (diff) | |
download | user-awareness-c3ee9bcbf12b883e6b91e5ed5255a5ee0c69e8aa.tar.gz user-awareness-c3ee9bcbf12b883e6b91e5ed5255a5ee0c69e8aa.tar.bz2 user-awareness-c3ee9bcbf12b883e6b91e5ed5255a5ee0c69e8aa.zip |
Get payload device user data
Signed-off-by: Abhay agarwal <ay.agarwal@samsung.com>
-rw-r--r-- | include/user-awareness.h | 21 | ||||
-rw-r--r-- | src/user-awareness-payload.c | 59 | ||||
-rw-r--r-- | test/uat-payload.c | 12 |
3 files changed, 88 insertions, 4 deletions
diff --git a/include/user-awareness.h b/include/user-awareness.h index bf80e28..d5ff9d4 100644 --- a/include/user-awareness.h +++ b/include/user-awareness.h @@ -3026,6 +3026,27 @@ int ua_payload_get_secondary_key( /** * @ingroup CAPI_NETWORK_UA_MODULE + * @brief Gets device's BLE payload user_data. + * @since_tizen 5.5 + * + * @param[in] handle The payload handle. + * @param[out] user_data The BLE payload user_data. + * + * @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_get_user_data( + ua_payload_h handle, + char **user_data); + +/** + * @ingroup CAPI_NETWORK_UA_MODULE * @brief Gets device's BLE payload DEVICE_UID. * @since_tizen 5.5 * diff --git a/src/user-awareness-payload.c b/src/user-awareness-payload.c index 3650dfd..6b82934 100644 --- a/src/user-awareness-payload.c +++ b/src/user-awareness-payload.c @@ -267,6 +267,7 @@ ua_payload_info_s* _ua_get_payload_from_uam(uam_ble_payload_s *uam_payload) { FUNC_ENTRY; ua_payload_info_s *payload = NULL; + int user_data_len = 0; retv_if(NULL == uam_payload, NULL); @@ -280,7 +281,8 @@ ua_payload_info_s* _ua_get_payload_from_uam(uam_ble_payload_s *uam_payload) payload->device_icon = uam_payload->device_icon; payload->secondary_key = uam_payload->secondary_key; - payload->device_uid = g_memdup(uam_payload->device_uid, UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN + 1); + payload->device_uid_len = uam_payload->device_uid_len; + payload->device_uid = g_memdup(uam_payload->device_uid, uam_payload->device_uid_len); if (!payload->device_uid) { UA_ERR("g_malloc0 failed"); _ua_free_ua_payload_info_s(payload); @@ -294,6 +296,14 @@ ua_payload_info_s* _ua_get_payload_from_uam(uam_ble_payload_s *uam_payload) return NULL; } + user_data_len = UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN - 1 - uam_payload->device_uid_len; + payload->user_data = g_memdup(uam_payload->user_data, user_data_len); + if (!payload->user_data) { + UA_ERR("g_malloc0 failed"); + _ua_free_ua_payload_info_s(payload); + return NULL; + } + FUNC_EXIT; return payload; } @@ -381,6 +391,7 @@ ua_payload_info_s* _ua_payload_clone(ua_payload_info_s *org_payload) { FUNC_ENTRY; ua_payload_info_s *payload = NULL; + int user_data_len = 0; retv_if(NULL == org_payload, NULL); @@ -394,7 +405,8 @@ ua_payload_info_s* _ua_payload_clone(ua_payload_info_s *org_payload) payload->device_icon = org_payload->device_icon; payload->secondary_key = org_payload->secondary_key; - payload->device_uid = g_memdup(org_payload->device_uid, UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN + 1); + payload->device_uid_len = org_payload->device_uid_len; + payload->device_uid = g_memdup(org_payload->device_uid, org_payload->device_uid_len); if (!payload->device_uid && org_payload->device_uid) { UA_ERR("g_malloc0 failed"); _ua_free_ua_payload_info_s(payload); @@ -408,6 +420,14 @@ ua_payload_info_s* _ua_payload_clone(ua_payload_info_s *org_payload) return NULL; } + user_data_len = UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN - 1 - org_payload->device_uid_len; + payload->user_data = g_memdup(org_payload->user_data, user_data_len); + if (!payload->user_data && org_payload->user_data) { + UA_ERR("g_malloc0 failed"); + _ua_free_ua_payload_info_s(payload); + return NULL; + } + FUNC_EXIT; return payload; } @@ -501,7 +521,8 @@ int ua_payload_get_device_uid( goto done; } - *device_uid = g_memdup(payload->device_uid, UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN); + UA_DBG("payload(device_uid_len) [%d]", payload->device_uid_len); + *device_uid = g_memdup(payload->device_uid, payload->device_uid_len); if (*device_uid == NULL) { // LCOV_EXCL_START UA_ERR("g_memdup failed"); @@ -537,3 +558,35 @@ done: FUNC_EXIT; return UA_ERROR_NONE; } + +int ua_payload_get_user_data( + ua_payload_h handle, + char **user_data) +{ + FUNC_ENTRY; + ua_payload_info_s *payload = (ua_payload_info_s *)handle; + int user_data_len = 0; + + UA_VALIDATE_INPUT_PARAMETER(handle); + UA_VALIDATE_INPUT_PARAMETER(user_data); + UA_PRINT_PAYLOAD_HANDLE(handle); + + if (!payload || !payload->user_data) { + *user_data = NULL; + UA_DBG("payload(user_data) is not found"); + goto done; + } + + user_data_len = UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN - 1 - payload->device_uid_len; + *user_data = g_memdup(payload->user_data, user_data_len); + if (*user_data == NULL) { + // LCOV_EXCL_START + UA_ERR("g_memdup failed"); + return UA_ERROR_OUT_OF_MEMORY; + // LCOV_EXCL_START + } + +done: + FUNC_EXIT; + return UA_ERROR_NONE; +} diff --git a/test/uat-payload.c b/test/uat-payload.c index e55fc57..e6067a1 100644 --- a/test/uat-payload.c +++ b/test/uat-payload.c @@ -138,11 +138,15 @@ static int _scan_payload_device_uid_str( { int ret = UA_ERROR_NONE; int temp = 0; + int device_uid_len = 0; msg("Input 17 bytes device_uid, each byte is 0 to 255 value"); memset(g_payload_device_uid_str, 0, MENU_DATA_SIZE + 1); - for (int i = 0; i < UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN; i++) { + if (strlen(g_payload_device_uid_len)) + device_uid_len = (unsigned char)strtol(g_payload_device_uid_len, NULL, 10); + + for (int i = 0; i < device_uid_len; i++) { ret = fscanf(stdin, "%d", &temp); if(!ret) msg(" - fscanf ret: %d", ret); @@ -274,6 +278,7 @@ static bool __foreach_added_payload_cb( char secondary_key = 0; char *device_uid = NULL; char device_icon = 0; + char *payload_user_data = NULL; if (!payload_handle) { msgr("payload_handle is NULL"); @@ -308,6 +313,11 @@ static bool __foreach_added_payload_cb( if (UA_ERROR_NONE == ret) msglr("Payload device icon : %d", device_icon); + ret = ua_payload_get_user_data(handle, &payload_user_data); + if (UA_ERROR_NONE == ret) { + msglr("Payload user data : %s", payload_user_data); + } + return true; } |