int _uam_request_add_payload(uam_ble_payload_s *payload,
char *device_id, uam_tech_type_e tech_type);
+/**
+ * @brief Adds a payload for a device to a service.
+ * @since_tizen 5.5
+ *
+ * @param[in] service Service name.
+ * @param[in] payload Payload information.
+ *
+ * @return 0 on success, otherwise a negative error value
+ * @retval #UAM_ERROR_NONE Successful
+ * @retval #UAM_ERROR_INVALID_PARAMETER Invalid parameters
+ * @retval #UAM_ERROR_INTERNAL Internal error
+ *
+ * @exception
+ * @pre
+ * @post
+ */
+int _uam_service_add_payload(const char *service,
+ uam_ble_payload_s *payload);
+
#ifdef __cplusplus
}
#endif
REQUEST(UAM_REQUEST_GET_SERVICES) \
REQUEST(UAM_REQUEST_ADD_IBEACON_ADV) \
REQUEST(UAM_REQUEST_ADD_PAYLOAD) \
+ REQUEST(UAM_REQUEST_ADD_PAYLOAD_TO_SERVICE) \
REQUEST(UAM_REQUEST_MAX)
#define GENERATE_REQUEST_ENUM(ENUM) ENUM,
FUNC_EXIT;
return ret;
}
+
+UAM_EXPORT_API int _uam_service_add_payload(const char *service,
+ uam_ble_payload_s *payload)
+{
+ FUNC_ENTRY;
+ int ret;
+ char svc_str[UAM_SERVICE_MAX_STRING_LEN];
+
+ UAM_VALIDATE_INPUT_PARAMETER(service);
+ UAM_VALIDATE_INPUT_PARAMETER(payload);
+
+ UAM_INIT_PARAMS();
+ UAM_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
+
+ g_strlcpy(svc_str, service, UAM_SERVICE_MAX_STRING_LEN);
+ g_array_append_vals(in_param1, svc_str, sizeof(svc_str));
+
+ g_array_append_vals(in_param2, payload, sizeof(uam_ble_payload_s));
+
+ ret = _uam_async_request(UAM_REQUEST_ADD_PAYLOAD_TO_SERVICE,
+ in_param1, in_param2, in_param3, in_param4,
+ cb_info.callback, cb_info.user_data);
+
+ UAM_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
+
+ FUNC_EXIT;
+ return ret;
+}
int _uam_core_add_payload(uam_ble_payload_s *payload, const char *device_id,
int tech_type);
+int _uam_core_service_add_payload(uam_ble_payload_s *payload,
+ const char *svc_name);
+
#ifdef __cplusplus
}
#endif
return 0;
}
return ((unsigned long long)(t.tv_sec) * 1000000000LL + t.tv_nsec) / 1000000;
-}
\ No newline at end of file
+}
UAM_ERR("Failed to send UAM_EVENT_USER_REMOVED");
ret = __free_uam_db_user_info((gpointer)user);
- if (UAM_ERROR_NONE != ret) {
+ if (UAM_ERROR_NONE != ret)
UAM_WARN("_free_uam_db_user_info failed");
- }
FUNC_EXIT;
return UAM_ERROR_NONE;
continue;
ret = _uam_core_service_remove_device(svc->name,
dev_info->device_id, dev_info->type);
- if (UAM_ERROR_NONE != ret) {
+ if (UAM_ERROR_NONE != ret)
UAM_ERR("_uam_device_db_delete_device_info failed");
- }
}
__uam_db_end_transaction(1);
/*** Add payload to database ***/
ret = _uam_db_insert_payload_info(device_id, tech_type, mac, payload);
if (UAM_ERROR_NONE != ret) {
- UAM_ERR("_uam_db_insert_adv_info failed");
+ UAM_ERR("_uam_db_insert_payload_info failed");
+ return ret;
+ }
+
+ FUNC_EXIT;
+ return UAM_ERROR_NONE;
+}
+
+int _uam_core_service_add_payload(uam_ble_payload_s *payload,
+ const char *svc_name)
+{
+ FUNC_ENTRY;
+ int ret = UAM_ERROR_NONE;
+// uam_db_service_info_t *service;
+// GSList *l;
+
+ retv_if(NULL == payload, UAM_ERROR_INVALID_PARAMETER);
+ retv_if(NULL == svc_name, UAM_ERROR_INVALID_PARAMETER);
+
+ /* Retrieve service from list */
+// l = g_slist_find_custom(services, svc_name, __compare_svc_name);
+// retv_if(NULL == l, UAM_ERROR_INVALID_PARAMETER);
+// service = l->data;
+
+ /*** Add payload to database ***/
+// ret = _uam_db_insert_payload_service_info(payload, service);
+ if (UAM_ERROR_NONE != ret) {
+ UAM_ERR("_uam_db_insert_payload_service_info failed");
return ret;
}
goto handle_error;
ret = _uam_db_get_service_info(service_name, &info);
- if (UAM_ERROR_NONE == ret) {
+ if (UAM_ERROR_NONE == ret)
service_number = info.service_number;
- } else
+ else
goto handle_error;
ret = __uam_db_update_discriminant(device_number, service_number, discriminant);
goto handle_error;
ret = _uam_db_get_service_info(service_name, &info);
- if (UAM_ERROR_NONE == ret) {
+ if (UAM_ERROR_NONE == ret)
service_number = info.service_number;
- } else
+ else
goto handle_error;
ret = __uam_db_update_last_seen(device_number, service_number, last_seen);
break;
}
+ case UAM_REQUEST_ADD_PAYLOAD_TO_SERVICE: {
+ uam_ble_payload_s *payload;
+ const char *svc_name;
+
+ svc_name = (char *)g_variant_get_data(in_param1);
+ __uam_manager_copy_params(in_param2, &payload, sizeof(uam_ble_payload_s));
+ UAM_DBG("Payload primary key: [%d], Service [%s]",
+ payload->primary_key, svc_name);
+
+ result = _uam_core_service_add_payload(payload, svc_name);
+ break;
+ }
default:
UAM_WARN("UnSupported function [%s(0x%4.4X)]",
_uam_manager_request_to_str(function), function);
case UAM_REQUEST_GET_SERVICES:
case UAM_REQUEST_ADD_IBEACON_ADV:
case UAM_REQUEST_ADD_PAYLOAD:
+ case UAM_REQUEST_ADD_PAYLOAD_TO_SERVICE:
return TRUE;
default:
return FALSE;