From: Abhay agarwal Date: Tue, 11 Jun 2019 13:51:46 +0000 (+0530) Subject: [UA API] Add/modify UA APIs X-Git-Tag: accepted/tizen/unified/20190702.234158~10 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2a3c635e028d963ff4d6fc2ef9d325e09e251995;p=platform%2Fcore%2Fconnectivity%2Fua-manager.git [UA API] Add/modify UA APIs This patch adds following UA APIs: 1/ _uam_service_add_user 2/ _uam_service_remove_user 3/ _uam_service_add_device 4/ _uam_service_remove_device 5/ _uam_set_service_detection_cycle 6/ _uam_get_service_detection_cycle It also modified signature of following UA APIs: 1/ _uam_start_presence_detection 2/ _uam_stop_presence_detection 3/ _uam_start_absence_detection 4/ _uam_stop_absence_detection Change-Id: If5ad6c0f608ac8f66ce265c22bf0cfd1fe7772c0 Signed-off-by: Abhay agarwal --- diff --git a/include/ua-api.h b/include/ua-api.h index 613593f..d512a97 100644 --- a/include/ua-api.h +++ b/include/ua-api.h @@ -43,6 +43,7 @@ extern "C" { #define UAM_USER_NAME_MAX_STRING_LEN 254 #define UAM_USER_ACCOUNT_MAX_STRING_LEN 254 #define UAM_APP_ID_MAX_STRING_LEN 100 +#define UA_MAX_SERVICE_LEN 50 #define FOREACH_EVENT(EVENT) \ EVENT(UAM_EVENT_USER_ADDED) \ @@ -108,13 +109,13 @@ int _uam_get_available_sensors(unsigned int *bitmask); int _uam_is_sensor_ready(unsigned int sensor, gboolean* status); -int _uam_start_presence_detection(unsigned int bitmask); +int _uam_start_presence_detection(unsigned int bitmask, const char *service); -int _uam_stop_presence_detection(unsigned int bitmask); +int _uam_stop_presence_detection(unsigned int bitmask, const char *service); -int _uam_start_absence_detection(unsigned int bitmask); +int _uam_start_absence_detection(unsigned int bitmask, const char *service); -int _uam_stop_absence_detection(unsigned int bitmask); +int _uam_stop_absence_detection(unsigned int bitmask, const char *service); int _uam_start_search_active_devices(unsigned int bitmask, int detection_period); @@ -234,6 +235,18 @@ int _uam_get_detection_window(unsigned int *window); int _uam_set_detection_window(unsigned int window); +int _uam_service_add_user(const char *service, uam_user_info_t *user); + +int _uam_service_remove_user(const char *service, uam_user_info_t *user); + +int _uam_service_add_device(const char *service, char *device_id, uam_tech_type_e tech_type); + +int _uam_service_remove_device(const char *service, char *device_id, uam_tech_type_e tech_type); + +int _uam_set_service_detection_cycle(const char *service, int cycle); + +int _uam_get_service_detection_cycle(const char *service); + #ifdef __cplusplus } #endif diff --git a/ua-api/src/ua-api.c b/ua-api/src/ua-api.c index dd14aaa..f2444d2 100644 --- a/ua-api/src/ua-api.c +++ b/ua-api/src/ua-api.c @@ -596,15 +596,21 @@ UAM_EXPORT_API int _uam_request_set_detection_threshold(unsigned int sensor_type return ret; } -UAM_EXPORT_API int _uam_start_presence_detection(unsigned int bitmask) +UAM_EXPORT_API int _uam_start_presence_detection(unsigned int bitmask, const char *service) { FUNC_ENTRY; int ret; + char svc_str[UA_MAX_SERVICE_LEN]; + + UAM_VALIDATE_INPUT_PARAMETER(service); UAM_INIT_PARAMS(); UAM_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); g_array_append_vals(in_param1, &bitmask, sizeof(unsigned int)); + g_strlcpy(svc_str, service, UA_MAX_SERVICE_LEN); + g_array_append_vals(in_param2, svc_str, sizeof(svc_str)); + ret = _uam_sync_request(UAM_REQUEST_START_PRESENCE_DETECTION, in_param1, in_param2, in_param3, in_param4, &out_param); @@ -614,15 +620,21 @@ UAM_EXPORT_API int _uam_start_presence_detection(unsigned int bitmask) return ret; } -UAM_EXPORT_API int _uam_stop_presence_detection(unsigned int bitmask) +UAM_EXPORT_API int _uam_stop_presence_detection(unsigned int bitmask, const char *service) { FUNC_ENTRY; int ret; + char svc_str[UA_MAX_SERVICE_LEN]; + + UAM_VALIDATE_INPUT_PARAMETER(service); UAM_INIT_PARAMS(); UAM_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); g_array_append_vals(in_param1, &bitmask, sizeof(unsigned int)); + g_strlcpy(svc_str, service, UA_MAX_SERVICE_LEN); + g_array_append_vals(in_param2, svc_str, sizeof(svc_str)); + ret = _uam_sync_request(UAM_REQUEST_STOP_PRESENCE_DETECTION, in_param1, in_param2, in_param3, in_param4, &out_param); @@ -632,15 +644,21 @@ UAM_EXPORT_API int _uam_stop_presence_detection(unsigned int bitmask) return ret; } -UAM_EXPORT_API int _uam_start_absence_detection(unsigned int bitmask) +UAM_EXPORT_API int _uam_start_absence_detection(unsigned int bitmask, const char *service) { FUNC_ENTRY; int ret; + char svc_str[UA_MAX_SERVICE_LEN]; + + UAM_VALIDATE_INPUT_PARAMETER(service); UAM_INIT_PARAMS(); UAM_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); g_array_append_vals(in_param1, &bitmask, sizeof(unsigned int)); + g_strlcpy(svc_str, service, UA_MAX_SERVICE_LEN); + g_array_append_vals(in_param2, svc_str, sizeof(svc_str)); + ret = _uam_sync_request(UAM_REQUEST_START_ABSENCE_DETECTION, in_param1, in_param2, in_param3, in_param4, &out_param); @@ -650,15 +668,21 @@ UAM_EXPORT_API int _uam_start_absence_detection(unsigned int bitmask) return ret; } -UAM_EXPORT_API int _uam_stop_absence_detection(unsigned int bitmask) +UAM_EXPORT_API int _uam_stop_absence_detection(unsigned int bitmask, const char *service) { FUNC_ENTRY; int ret; + char svc_str[UA_MAX_SERVICE_LEN]; + + UAM_VALIDATE_INPUT_PARAMETER(service); UAM_INIT_PARAMS(); UAM_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); g_array_append_vals(in_param1, &bitmask, sizeof(unsigned int)); + g_strlcpy(svc_str, service, UA_MAX_SERVICE_LEN); + g_array_append_vals(in_param2, svc_str, sizeof(svc_str)); + ret = _uam_sync_request(UAM_REQUEST_STOP_ABSENCE_DETECTION, in_param1, in_param2, in_param3, in_param4, &out_param); @@ -848,3 +872,166 @@ UAM_EXPORT_API int _uam_deregister_app(const char *app_id, unsigned short uid) FUNC_EXIT; return ret; } + +UAM_EXPORT_API int _uam_service_add_user(const char *service, uam_user_info_t *user) +{ + FUNC_ENTRY; + int ret; + char svc_str[UA_MAX_SERVICE_LEN]; + char account_str[UAM_USER_ACCOUNT_MAX_STRING_LEN]; + + UAM_VALIDATE_INPUT_PARAMETER(service); + UAM_VALIDATE_INPUT_PARAMETER(user); + UAM_VALIDATE_INPUT_PARAMETER(user->account); + + UAM_INIT_PARAMS(); + UAM_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); + + g_strlcpy(svc_str, service, UA_MAX_SERVICE_LEN); + g_array_append_vals(in_param1, svc_str, sizeof(svc_str)); + + g_strlcpy(account_str, user->account, UAM_USER_ACCOUNT_MAX_STRING_LEN); + g_array_append_vals(in_param2, account_str, sizeof(account_str)); + + ret = _uam_sync_request(UAM_REQUEST_ADD_USER_TO_SERVICE, + in_param1, in_param2, in_param3, in_param4, &out_param); + + UAM_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); + + FUNC_EXIT; + return ret; +} + +UAM_EXPORT_API int _uam_service_remove_user(const char *service, uam_user_info_t *user) +{ + FUNC_ENTRY; + int ret; + char svc_str[UA_MAX_SERVICE_LEN]; + char account_str[UAM_USER_ACCOUNT_MAX_STRING_LEN]; + + UAM_VALIDATE_INPUT_PARAMETER(service); + UAM_VALIDATE_INPUT_PARAMETER(user); + UAM_VALIDATE_INPUT_PARAMETER(user->account); + + UAM_INIT_PARAMS(); + UAM_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); + + g_strlcpy(svc_str, service, UA_MAX_SERVICE_LEN); + g_array_append_vals(in_param1, svc_str, sizeof(svc_str)); + + g_strlcpy(account_str, user->account, UAM_USER_ACCOUNT_MAX_STRING_LEN); + g_array_append_vals(in_param2, account_str, sizeof(account_str)); + + ret = _uam_sync_request(UAM_REQUEST_REMOVE_USER_FROM_SERVICE, + in_param1, in_param2, in_param3, in_param4, &out_param); + + UAM_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); + + FUNC_EXIT; + return ret; +} + +UAM_EXPORT_API int _uam_service_add_device(const char *service, char *device_id, uam_tech_type_e tech_type) +{ + FUNC_ENTRY; + int ret; + char svc_str[UA_MAX_SERVICE_LEN]; + char str[UAM_DEVICE_ID_MAX_STRING_LEN]; + + UAM_VALIDATE_INPUT_PARAMETER(service); + UAM_VALIDATE_INPUT_PARAMETER(device_id); + + UAM_INIT_PARAMS(); + UAM_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); + + g_strlcpy(svc_str, service, UA_MAX_SERVICE_LEN); + g_array_append_vals(in_param1, svc_str, sizeof(svc_str)); + + g_strlcpy(str, device_id, UAM_DEVICE_ID_MAX_STRING_LEN); + g_array_append_vals(in_param2, str, sizeof(str)); + g_array_append_vals(in_param3, &tech_type, sizeof(int)); + + ret = _uam_sync_request(UAM_REQUEST_ADD_DEVICE_TO_SERVICE, + in_param1, in_param2, in_param3, in_param4, &out_param); + + UAM_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); + + FUNC_EXIT; + return ret; +} + +UAM_EXPORT_API int _uam_service_remove_device(const char *service, char *device_id, uam_tech_type_e tech_type) +{ + FUNC_ENTRY; + int ret; + char svc_str[UA_MAX_SERVICE_LEN]; + char str[UAM_DEVICE_ID_MAX_STRING_LEN]; + + UAM_VALIDATE_INPUT_PARAMETER(service); + UAM_VALIDATE_INPUT_PARAMETER(device_id); + + UAM_INIT_PARAMS(); + UAM_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); + + g_strlcpy(svc_str, service, UA_MAX_SERVICE_LEN); + g_array_append_vals(in_param1, svc_str, sizeof(svc_str)); + + g_strlcpy(str, device_id, UAM_DEVICE_ID_MAX_STRING_LEN); + g_array_append_vals(in_param2, str, sizeof(str)); + g_array_append_vals(in_param3, &tech_type, sizeof(int)); + + ret = _uam_sync_request(UAM_REQUEST_REMOVE_DEVICE_FROM_SERVICE, + in_param1, in_param2, in_param3, in_param4, &out_param); + + UAM_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); + + FUNC_EXIT; + return ret; +} + +UAM_EXPORT_API int _uam_set_service_detection_cycle(const char *service, int cycle) +{ + FUNC_ENTRY; + int ret; + char svc_str[UA_MAX_SERVICE_LEN]; + + UAM_VALIDATE_INPUT_PARAMETER(service); + + UAM_INIT_PARAMS(); + UAM_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); + + g_strlcpy(svc_str, service, UA_MAX_SERVICE_LEN); + g_array_append_vals(in_param1, svc_str, sizeof(svc_str)); + g_array_append_vals(in_param2, &cycle, sizeof(int)); + + ret = _uam_sync_request(UAM_REQUEST_SET_SERVICE_DETECTION_CYCLE, + in_param1, in_param2, in_param3, in_param4, &out_param); + + UAM_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); + + FUNC_EXIT; + return ret; +} + +UAM_EXPORT_API int _uam_get_service_detection_cycle(const char *service) +{ + FUNC_ENTRY; + int ret; + char svc_str[UA_MAX_SERVICE_LEN]; + + UAM_VALIDATE_INPUT_PARAMETER(service); + + UAM_INIT_PARAMS(); + UAM_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); + + g_strlcpy(svc_str, service, UA_MAX_SERVICE_LEN); + g_array_append_vals(in_param1, svc_str, sizeof(svc_str)); + + ret = _uam_sync_request(UAM_REQUEST_GET_SERVICE_DETECTION_CYCLE, + in_param1, in_param2, in_param3, in_param4, &out_param); + + UAM_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); + + FUNC_EXIT; + return ret; +} diff --git a/ua-daemon/include/ua-manager-database.h b/ua-daemon/include/ua-manager-database.h index ba2ddde..79cb71b 100644 --- a/ua-daemon/include/ua-manager-database.h +++ b/ua-daemon/include/ua-manager-database.h @@ -85,8 +85,6 @@ int _ua_device_db_update_device_ip_address(char *device_id, int tech_type, char /* SERVICE QUERIES */ -#define UA_MAX_SERVICE_LEN 100 - typedef struct { int service_number; char service_name[UA_MAX_SERVICE_LEN];