Add new api clearing user-data directories 32/117332/5
authorjongmyeongko <jongmyeong.ko@samsung.com>
Sat, 4 Mar 2017 07:10:26 +0000 (16:10 +0900)
committerSemun Lee <sm79.lee@samsung.com>
Tue, 14 Mar 2017 08:08:56 +0000 (01:08 -0700)
This api will clear all files under data directories in internal and external storage.
- data, shared/data and shared/trusted (in interanl)
- data, shared/trusted (in external)

Change-Id: Iaa4ce8e8a031ab4250f863cb34367730628555ce
Signed-off-by: jongmyeongko <jongmyeong.ko@samsung.com>
include/package_manager.h
include/package_manager_extension.h [deleted file]
src/package_manager.c

index 593a0ec..544f2d2 100644 (file)
@@ -472,6 +472,26 @@ int package_manager_clear_cache_dir(const char *package_id);
  */
 int package_manager_clear_all_cache_dir(void);
 
+/**
+ * @platform
+ * @brief Clears internal and external data directories used by applications in the given package.
+ * @details All files stored in data directories used by applications in the package specified with the @a package_id are removed.
+ * @since_tizen 4.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/packagemanager.admin
+ * @param[in] package_id  The package ID
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #PACKAGE_MANAGER_ERROR_NONE              Successful
+ * @retval #PACKAGE_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #PACKAGE_MANAGER_ERROR_NO_SUCH_PACKAGE   No such package
+ * @retval #PACKAGE_MANAGER_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #PACKAGE_MANAGER_ERROR_IO_ERROR          I/O error
+ * @retval #PACKAGE_MANAGER_ERROR_SYSTEM_ERROR      Severe system error
+ */
+int package_manager_clear_data_dir(const char *package_id);
+
 
 /**
  * @brief The package size information handle.
diff --git a/include/package_manager_extension.h b/include/package_manager_extension.h
deleted file mode 100644 (file)
index e5788b2..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __TIZEN_APPFW_PACKAGE_MANAGER_EXTENSION_H
-#define __TIZEN_APPFW_PACKAGE_MANAGER_EXTENSION_H
-
-#include "package_manager.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @file package_manager_extension.h
- */
-
-/**
- * @addtogroup CAPI_PACKAGE_MANAGER_MODULE
- * @{
- */
-
-/**
- * @brief  Clears the application's userdata.
- * @details All userdatas of the application specified with the
- *          package ID are removed.
- *
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/packagemanager.admin
- *
- * @param[in] package_id  The package ID
- *
- * @return @c 0 on success,
- *         otherwise a negative error value
- *
- * @retval #PACKAGE_MANAGER_ERROR_NONE              Successful
- * @retval #PACKAGE_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #PACKAGE_MANAGER_ERROR_NO_SUCH_PACKAGE   No such package
- * @retval #PACKAGE_MANAGER_ERROR_PERMISSION_DENIED Permission denied
- * @retval #PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY     Out of memory
- * @retval #PACKAGE_MANAGER_ERROR_IO_ERROR          I/O error
- * @retval #PACKAGE_MANAGER_ERROR_SYSTEM_ERROR      Severe system error
- */
-int package_manager_clear_data(const char *package_id);
-
-/**
-* @}
-*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TIZEN_APPFW_PACKAGE_MANAGER_EXTENSION_H */
index 7a83111..3d76352 100644 (file)
@@ -1113,7 +1113,7 @@ API int package_manager_clear_cache_dir(const char *package_id)
        return PACKAGE_MANAGER_ERROR_NONE;
 }
 
-API int package_manager_clear_data(const char *package_id)
+API int package_manager_clear_data_dir(const char *package_id)
 {
        int retval;
        pkgmgr_client *pc = NULL;
@@ -1150,8 +1150,22 @@ API int package_manager_clear_data(const char *package_id)
        pkgmgr_client_free(pc);
        pkgmgrinfo_pkginfo_destroy_pkginfo(pkginfo);
 
-       if (retval != PKGMGR_R_OK)
-               return PACKAGE_MANAGER_ERROR_IO_ERROR;
+       if (retval == PKGMGR_R_EINVAL) {
+               return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
+       } else if (retval == PKGMGR_R_ENOPKG) {
+               return package_manager_error(PACKAGE_MANAGER_ERROR_NO_SUCH_PACKAGE, __FUNCTION__, NULL);
+       } else if (retval == PKGMGR_R_ENOMEM) {
+               return package_manager_error(PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY, __FUNCTION__, NULL);
+       } else if (retval == PKGMGR_R_EIO) {
+               return package_manager_error(PACKAGE_MANAGER_ERROR_IO_ERROR, __FUNCTION__, NULL);
+       } else if (retval == PKGMGR_R_EPRIV) {
+               return package_manager_error(PACKAGE_MANAGER_ERROR_PERMISSION_DENIED, __FUNCTION__, NULL);
+       } else if (retval == PKGMGR_R_ESYSTEM || retval == PKGMGR_R_ECOMM || retval == PKGMGR_R_ERROR) {
+               return package_manager_error(PACKAGE_MANAGER_ERROR_SYSTEM_ERROR, __FUNCTION__, NULL);
+       } else if (retval != PKGMGR_R_OK) {
+               _LOGE("Unexpected error");
+               return package_manager_error(PACKAGE_MANAGER_ERROR_SYSTEM_ERROR, __FUNCTION__, NULL);
+       }
 
        return PACKAGE_MANAGER_ERROR_NONE;
 }