Modified APIs of 2.4 38/46238/1 accepted/tizen/mobile/20150818.101006 accepted/tizen/tv/20150818.101406 accepted/tizen/wearable/20150818.101722 submit/tizen/20150818.092232
authorYongjin Kim <youth.kim@samsung.com>
Tue, 18 Aug 2015 09:18:57 +0000 (18:18 +0900)
committerYongjin Kim <youth.kim@samsung.com>
Tue, 18 Aug 2015 09:18:57 +0000 (18:18 +0900)
Change-Id: Idbd808f290304a981c6733ae6e7efbcb4528b740
Signed-off-by: Yongjin Kim <youth.kim@samsung.com>
client/sal_service_adaptor.c
client/sal_service_adaptor.h
client/sal_service_storage.c
client/sal_service_storage_internal.h
client/sal_service_task.c
client/sal_service_task_internal.h
common/ipc-server/sal_ipc_server_storage.c
packaging/service-adaptor.spec
server/sal_observer.c
test/test.c

index a1998ec..dbebe64 100644 (file)
@@ -153,12 +153,14 @@ API int service_adaptor_disconnect()
 
 API int service_adaptor_foreach_plugin(service_adaptor_h service_adaptor, service_adaptor_plugin_cb callback, void *user_data)
 {
+       SAL_FN_CALL;
+
        RETV_IF(NULL == service_adaptor, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
 
-       return service_adaptor_foreach_plugin2(callback, user_data);
+       return service_adaptor_foreach_service_plugin(callback, user_data);
 }
 
-API int service_adaptor_foreach_plugin2(service_adaptor_plugin_cb callback, void *user_data)
+API int service_adaptor_foreach_service_plugin(service_adaptor_plugin_cb callback, void *user_data)
 {
        SAL_FN_CALL;
 
@@ -195,7 +197,7 @@ API int service_adaptor_get_last_error_message(char **message)
        RETV_IF(NULL == service_adaptor, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
        RETV_IF(NULL == message, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
 
-       return SERVICE_ADAPTOR_ERROR_NONE;
+       return SERVICE_ADAPTOR_ERROR_NO_DATA;
 }
 
 API int service_adaptor_create_plugin(service_adaptor_h service_adaptor, const char *plugin_uri, service_plugin_h *plugin)
@@ -308,12 +310,12 @@ API int service_plugin_login(service_plugin_h plugin, service_plugin_login_cb ca
 
 API int service_plugin_start(service_plugin_h plugin, int service_mask)
 {
-       RETV_IF(0 <= service_mask, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
+       RETV_IF(0 >= service_mask, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
 
-       return service_plugin_start2(plugin);
+       return service_plugin_start_all(plugin);
 }
 
-API int service_plugin_start2(service_plugin_h plugin)
+API int service_plugin_start_all(service_plugin_h plugin)
 {
        SAL_FN_CALL;
 
index fcfd3ea..93e4e7d 100644 (file)
@@ -226,7 +226,7 @@ int service_adaptor_foreach_plugin(service_adaptor_h service_adaptor,
  * @retval #SERVICE_ADAPTOR_ERROR_UNKNOWN Unknown error
  * @pre  @a service_adaptor must be issued by service_adaptor_create()
  */
-int service_adaptor_foreach_plugin2(service_adaptor_plugin_cb callback,
+int service_adaptor_foreach_service_plugin(service_adaptor_plugin_cb callback,
                void *user_data);
 
 /**
@@ -458,7 +458,7 @@ int service_plugin_start(service_plugin_h plugin,
  * @retval #SERVICE_ADAPTOR_ERROR_IPC_UNSTABLE IPC failed with Service Adaptor Daemon
  * @retval #SERVICE_ADAPTOR_ERROR_UNKNOWN Unknown error
  */
-int service_plugin_start2(service_plugin_h plugin);
+int service_plugin_start_all(service_plugin_h plugin);
 
 /**
  * @brief Requests stop manually for service plugin
index d6d0fe6..9207dc6 100644 (file)
@@ -367,6 +367,17 @@ API int service_storage_create_upload_task(service_plugin_h plugin,
        RETV_IF(NULL == upload_path, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
        RETV_IF(NULL == task, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
 
+       service_storage_cloud_file_h file = NULL;
+       service_storage_cloud_file_create(plugin, &file);
+       service_storage_cloud_file_set_operation(file, SERVICE_STORAGE_CLOUD_UPLOAD_FILE_URI);
+       service_storage_cloud_file_set_cloud_path(file, upload_path);
+       service_storage_cloud_file_set_local_path(file, file_path);
+
+       service_task_h service_task = (service_task_h) g_malloc0(sizeof(service_task_s));
+       service_task->cloud_file = file;
+
+       *task = (service_storage_task_h) service_task;
+
        return SERVICE_ADAPTOR_ERROR_NONE;
 }
 
@@ -380,6 +391,17 @@ API int service_storage_create_download_task(service_plugin_h plugin,
        RETV_IF(NULL == download_path, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
        RETV_IF(NULL == task, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
 
+       service_storage_cloud_file_h file = NULL;
+       service_storage_cloud_file_create(plugin, &file);
+       service_storage_cloud_file_set_operation(file, SERVICE_STORAGE_CLOUD_DOWNLOAD_FILE_URI);
+       service_storage_cloud_file_set_cloud_path(file, storage_path);
+       service_storage_cloud_file_set_local_path(file, download_path);
+
+       service_task_h service_task = (service_task_h) g_malloc0(sizeof(service_task_s));
+       service_task->cloud_file = file;
+
+       *task = (service_storage_task_h) service_task;
+
        return SERVICE_ADAPTOR_ERROR_NONE;
 }
 
@@ -392,9 +414,20 @@ API int service_storage_create_download_thumbnail_task (service_plugin_h plugin,
        RETV_IF(NULL == plugin, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
        RETV_IF(NULL == storage_path, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
        RETV_IF(NULL == download_path, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
-       RETV_IF(0 < thumbnail_size, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
+       RETV_IF(0 > thumbnail_size, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
        RETV_IF(NULL == task, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
 
+       service_storage_cloud_file_h file = NULL;
+       service_storage_cloud_file_create(plugin, &file);
+       service_storage_cloud_file_set_operation(file, SERVICE_STORAGE_CLOUD_DOWNLOAD_FILE_THUMBNAIL_URI);
+       service_storage_cloud_file_set_cloud_path(file, storage_path);
+       service_storage_cloud_file_set_local_path(file, download_path);
+
+       service_task_h service_task = (service_task_h) g_malloc0(sizeof(service_task_s));
+       service_task->cloud_file = file;
+
+       *task = (service_storage_task_h) service_task;
+
        return SERVICE_ADAPTOR_ERROR_NONE;
 }
 
@@ -402,20 +435,21 @@ API int service_storage_destroy_task(service_storage_task_h task)
 {
        RETV_IF(NULL == task, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
 
-       return SERVICE_ADAPTOR_ERROR_NONE;
+       return service_storage_cloud_file_destroy_task((service_task_h) task);
 }
 
 API int service_storage_start_task(service_storage_task_h task)
 {
        RETV_IF(NULL == task, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
 
-       return SERVICE_ADAPTOR_ERROR_NONE;
+       return service_task_start((service_task_h) task);
 }
 
 API int service_storage_cancel_task(service_storage_task_h task)
 {
        RETV_IF(NULL == task, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
 
+//     return service_task_stop((service_task_h) task);
        return SERVICE_ADAPTOR_ERROR_NONE;
 }
 
@@ -426,6 +460,10 @@ API int service_storage_set_task_progress_cb(service_storage_task_h task,
        RETV_IF(NULL == task, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
        RETV_IF(NULL == callback, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
 
+       service_task_h service_task = (service_task_h) task;
+       service_task->storage_progress_callback = callback;
+       service_task->user_data = user_data;
+
        return SERVICE_ADAPTOR_ERROR_NONE;
 }
 
@@ -433,6 +471,10 @@ API int service_storage_unset_task_progress_cb(service_storage_task_h task)
 {
        RETV_IF(NULL == task, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
 
+       service_task_h service_task = (service_task_h) task;
+       service_task->storage_progress_callback = NULL;
+       service_task->user_data = NULL;
+
        return SERVICE_ADAPTOR_ERROR_NONE;
 }
 
@@ -443,6 +485,10 @@ API int service_storage_set_task_state_changed_cb(service_storage_task_h task,
        RETV_IF(NULL == task, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
        RETV_IF(NULL == callback, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
 
+       service_task_h service_task = (service_task_h) task;
+       service_task->storage_state_callback = callback;
+       service_task->user_data = user_data;
+
        return SERVICE_ADAPTOR_ERROR_NONE;
 }
 
@@ -450,6 +496,10 @@ API int service_storage_unset_task_state_changed_cb(service_storage_task_h task)
 {
        RETV_IF(NULL == task, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
 
+       service_task_h service_task = (service_task_h) task;
+       service_task->storage_state_callback = NULL;
+       service_task->user_data = NULL;
+
        return SERVICE_ADAPTOR_ERROR_NONE;
 }
 
index 8f7df0a..490a636 100644 (file)
@@ -50,6 +50,11 @@ typedef struct _service_storage_cloud_file_s
        GList *files;
 } service_storage_cloud_file_s;
 
+typedef struct _service_storage_task_s
+{
+        char *service_handle_name;
+}service_storage_task_t;
+
 /*==================================================================================================
                                          FUNCTION PROTOTYPES
 ==================================================================================================*/
index 3787456..1c2510b 100644 (file)
@@ -65,7 +65,15 @@ static void _service_task_async_func(gpointer data, gpointer user_data)
                return;
        }
 
-       service_tasks = g_list_append(service_tasks, task);
+       // TODO: in IPC
+       if (NULL != task->storage_progress_callback)
+       {
+               task->storage_progress_callback(100, 100, task->user_data);
+       }
+       if (NULL != task->storage_state_callback)
+       {
+               task->storage_state_callback(SERVICE_STORAGE_TASK_COMPLETED, task->user_data);
+       }
 }
 
 //******************************************************************************
@@ -97,6 +105,8 @@ API int service_task_start(service_task_h task)
 
        RETV_IF(NULL == task, SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER);
 
+       service_tasks = g_list_append(service_tasks, task);
+
        g_thread_pool_push(thread_pool, (gpointer) task, NULL);
 
        return SERVICE_ADAPTOR_ERROR_NONE;
index f2a4c58..bb5e387 100644 (file)
@@ -41,6 +41,11 @@ typedef struct _service_task_s
 
        service_auth_oauth1_h oauth1;
        service_storage_cloud_file_h cloud_file;
+
+       // temp
+       service_storage_task_progress_cb storage_progress_callback;
+       service_storage_task_state_cb storage_state_callback;
+       void *user_data;
 } service_task_s;
 
 /*==================================================================================================
index e91fd70..8ac8805 100644 (file)
@@ -108,18 +108,26 @@ int _cloud_execute_operation(storage_plugin_h plugin, service_storage_cloud_file
        }
        else if (0 == strcmp(file->operation, SERVICE_STORAGE_CLOUD_DOWNLOAD_FILE_URI))
        {
+               ret = plugin->cloud->cloud_remove_file(plugin, file->cloud_path, _cloud_remove_file_cb, reply);
+
                return ret;
        }
        else if (0 == strcmp(file->operation, SERVICE_STORAGE_CLOUD_UPLOAD_FILE_URI))
        {
+               ret = plugin->cloud->cloud_remove_file(plugin, file->cloud_path, _cloud_remove_file_cb, reply);
+
                return ret;
        }
        else if (0 == strcmp(file->operation, SERVICE_STORAGE_CLOUD_DOWNLOAD_FILE_THUMBNAIL_URI))
        {
+               ret = plugin->cloud->cloud_remove_file(plugin, file->cloud_path, _cloud_remove_file_cb, reply);
+
                return ret;
        }
        else if (0 == strcmp(file->operation, SERVICE_STORAGE_CLOUD_GET_FILE_LIST_URI))
        {
+               ret = plugin->cloud->cloud_remove_file(plugin, file->cloud_path, _cloud_remove_file_cb, reply);
+
                return ret;
        }
 
index 90a00f9..7e3e81a 100644 (file)
@@ -1,6 +1,6 @@
 Name:       service-adaptor
 Summary:    Service Adaptor Framework for Convergence
-Version:    1.1.0
+Version:    1.1.2
 Release:    1
 Group:      System/Libraries
 License:    Apache-2.0
index b2285b3..a030eab 100644 (file)
@@ -52,6 +52,8 @@
  */
 static bool _sal_app_meta_cb(const char *key, const char *value, void *user_data)
 {
+       SAL_FN_CALL;
+
        provider_user_data_h provider_user_data = (provider_user_data_h) user_data;
 
        if ((NULL != key) && (NULL != value))
@@ -75,6 +77,8 @@ static bool _sal_app_meta_cb(const char *key, const char *value, void *user_data
  */
 static bool _sal_app_info_cb(package_info_app_component_type_e comp_type, const char *app_id, void *user_data)
 {
+       SAL_FN_CALL;
+
        app_info_h app_info = NULL;
        int ret = PACKAGE_MANAGER_ERROR_NONE;
        char *package = (char *) user_data;
@@ -105,6 +109,8 @@ static void _sal_package_event_cb(const char *type,
                 package_manager_error_e error,
                 void *user_data)
 {
+       SAL_FN_CALL;
+
         if ((PACKAGE_MANAGER_EVENT_TYPE_INSTALL == event_type) && (PACKAGE_MANAGER_EVENT_STATE_COMPLETED == event_state))
         {
                int ret = PACKAGE_MANAGER_ERROR_NONE;
@@ -147,6 +153,8 @@ static void _sal_package_event_cb(const char *type,
  */
 static bool _sal_package_info_cb(package_info_h package_info, void *user_data)
 {
+       SAL_FN_CALL;
+
        int ret = PACKAGE_MANAGER_ERROR_NONE;
 
        char *package = NULL;
@@ -170,6 +178,8 @@ static bool _sal_package_info_cb(package_info_h package_info, void *user_data)
  */
 service_adaptor_error_e sal_observer_start()
 {
+       SAL_FN_CALL;
+
        int ret = 0;
        package_manager_h package = NULL;
 
@@ -188,6 +198,8 @@ service_adaptor_error_e sal_observer_start()
  */
 service_adaptor_error_e sal_observer_register_existed_plugin()
 {
+       SAL_FN_CALL;
+
        int ret = PACKAGE_MANAGER_ERROR_NONE;
 
        ret = package_manager_foreach_package_info(_sal_package_info_cb, NULL);
index a1af928..c3786ec 100644 (file)
@@ -30,7 +30,7 @@ void _service_plugin_login_callback(int result, void *user_data)
 {
        int ret = SERVICE_ADAPTOR_ERROR_NONE;
 
-       ret = service_plugin_start2(service_plugin);
+       ret = service_plugin_start_all(service_plugin);
 
        if (SERVICE_ADAPTOR_ERROR_NONE != ret)
        {
@@ -118,7 +118,7 @@ int main()
        int ret = SERVICE_ADAPTOR_ERROR_NONE;
 
        ret = service_adaptor_connect();
-       ret = service_adaptor_foreach_plugin2(_service_adaptor_plugin_callback, NULL);
+       ret = service_adaptor_foreach_service_plugin(_service_adaptor_plugin_callback, NULL);
 
        loop = g_main_loop_new(NULL, FALSE);