[UA API] Add/modify UA APIs 42/208842/1
authorAbhay agarwal <ay.agarwal@samsung.com>
Tue, 11 Jun 2019 13:51:46 +0000 (19:21 +0530)
committersaerome kim <saerome.kim@samsung.com>
Mon, 1 Jul 2019 02:01:18 +0000 (11:01 +0900)
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 <ay.agarwal@samsung.com>
include/ua-api.h
ua-api/src/ua-api.c
ua-daemon/include/ua-manager-database.h

index 613593f..d512a97 100644 (file)
@@ -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
index dd14aaa..f2444d2 100644 (file)
@@ -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;
+}
index ba2ddde..79cb71b 100644 (file)
@@ -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];