Print error log when check_privilege() failed
[platform/core/api/package-manager.git] / include / package_info.h
index 5e9ce5b..9305e02 100644 (file)
@@ -47,6 +47,13 @@ typedef struct package_info_s *package_info_h;
 typedef struct package_updateinfo_s *package_updateinfo_h;
 
 /**
+ * @brief The required privilege handle.
+ * @since_tizen 6.5
+ * @see package_info_foreach_required_privilege()
+ */
+typedef struct allowed_package_required_privilege_s *allowed_package_required_privilege_h;
+
+/**
  * @brief Enumeration for storage type.
  * @since_tizen 2.3
  */
@@ -184,6 +191,21 @@ typedef bool (*package_info_dependency_info_cb) (const char *from, const char *t
 
 
 /**
+ * @brief Called to get the allowed package information of resource package.
+ * @since_tizen 6.5
+ * @remarks @a allowed_package, @a privilege_handle are managed by the platform and will be released after the callback exits.
+ * @param[in] allowed_package  The ID of allowed package
+ * @param[in] privilege_handle The privilege handle required by resource package
+ * @param[in] user_data        The user data passed from the foreach function
+ * @return  @c true to continue with the next iteration of the loop,
+ *          otherwise @c false to break out of the loop
+ * @pre package_info_foreach_res_allowed_package() will invoke this callback.
+ * @see package_info_foreach_res_allowed_package()
+ */
+typedef bool (*package_info_res_allowed_package_cb) (const char *allowed_package, allowed_package_required_privilege_h privilege_handle, void *user_data);
+
+
+/**
  * @brief Retrieves all application IDs of each package.
  * @since_tizen 2.3
  * @param[in] package_info  The package info handle
@@ -360,6 +382,38 @@ int package_info_get_tep_name(package_info_h package_info, char **name);
 
 
 /**
+ * @brief Gets the resource type of the package.
+ * @since_tizen 6.5
+ * @remarks You must release @a res_type using free().
+ * @param[in]  package_info The package information
+ * @param[out] res_type     The resource type of the package
+ * @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_OUT_OF_MEMORY     Out of memory
+ * @retval #PACKAGE_MANAGER_ERROR_IO_ERROR          I/O error
+ */
+int package_info_get_res_type(package_info_h package_info, char **res_type);
+
+
+/**
+ * @brief Gets the resource version of the package.
+ * @since_tizen 6.5
+ * @remarks You must release @a res_version using free().
+ * @param[in]  package_info The package information
+ * @param[out] res_version  The resource version of the package
+ * @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_OUT_OF_MEMORY     Out of memory
+ * @retval #PACKAGE_MANAGER_ERROR_IO_ERROR          I/O error
+ */
+int package_info_get_res_version(package_info_h package_info, char **res_version);
+
+
+/**
  * @brief Checks whether the package is system package.
  * @since_tizen 2.3
  * @param[in]  package_info The package information
@@ -560,6 +614,40 @@ int package_info_foreach_dependency_info(package_info_h package_info, package_in
  */
 int package_info_foreach_dependency_info_depends_on(package_info_h package_info, package_info_dependency_info_cb callback, void *user_data);
 
+
+/**
+ * @brief Retrieves allowed package information of the resource package.
+ * @details Resource packages allow access to allowed data only for allowed packages that have specific privileges.
+ *          If not, they just allow access to global data
+ * @since_tizen 6.5
+ * @param[in] package_info The package information
+ * @param[in] callback     The iteration callback function
+ * @param[in] user_data    The user data to be passed to the callback function
+ * @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_IO_ERROR          I/O error
+ * @retval #PACKAGE_MANAGER_ERROR_SYSTEM_ERROR      Severe system error
+ */
+int package_info_foreach_res_allowed_package(package_info_h package_info, package_info_res_allowed_package_cb callback, void *user_data);
+
+
+/**
+ * @brief Retrieves required privilege information of the allowed package.
+ * @details The packages want to access in the allowed area of resource package must have all the privileges required by resource package.
+ * @since_tizen 6.5
+ * @param[in] priv_info    The privilege information handle
+ * @param[in] callback     The iteration callback function
+ * @param[in] user_data    The user data to be passed to the callback function
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #PACKAGE_MANAGER_ERROR_NONE              Successful
+ * @retval #PACKAGE_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ */
+int package_info_foreach_required_privilege(allowed_package_required_privilege_h priv_info, package_info_privilege_info_cb callback, void *user_data);
+
+
 /**
  * @brief Gets the package update information for the given package.
  * @since_tizen 4.0