X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=include%2Fpkgmgr-info.h;h=8fac17b2e84badb25a809942f86b9ea550f73f6d;hb=5e622b967bbcffd42a99ad5f56a0a2a83a20303b;hp=af8d9fc64510e6d7a5095e56ade178396aaa0747;hpb=7f3c6a9596518875eccb613206723865c57a31fe;p=platform%2Fcore%2Fappfw%2Fpkgmgr-info.git diff --git a/include/pkgmgr-info.h b/include/pkgmgr-info.h index af8d9fc..8fac17b 100644 --- a/include/pkgmgr-info.h +++ b/include/pkgmgr-info.h @@ -99,6 +99,8 @@ extern "C" { #define PMINFO_PKGINFO_PROP_PACKAGE_PRELOAD "PMINFO_PKGINFO_PROP_PACKAGE_PRELOAD" /** Boolean property for filtering based on package info*/ #define PMINFO_PKGINFO_PROP_PACKAGE_READONLY "PMINFO_PKGINFO_PROP_PACKAGE_READONLY" + /** Boolean property for filtering based on package info*/ +#define PMINFO_PKGINFO_PROP_PACKAGE_SYSTEM "PMINFO_PKGINFO_PROP_PACKAGE_SYSTEM" /** Boolean property for filtering based on package info*/ #define PMINFO_PKGINFO_PROP_PACKAGE_UPDATE "PMINFO_PKGINFO_PROP_PACKAGE_UPDATE" /** Boolean property for filtering based on package info*/ @@ -109,6 +111,8 @@ extern "C" { #define PMINFO_PKGINFO_PROP_PACKAGE_SUPPORT_DISABLE "PMINFO_PKGINFO_PROP_PACKAGE_SUPPORT_DISABLE" /** Boolean property for filtering based on package info*/ #define PMINFO_PKGINFO_PROP_PACKAGE_DISABLE "PMINFO_PKGINFO_PROP_PACKAGE_DISABLE" + /** Boolean property for filtering based on package info*/ +#define PMINFO_PKGINFO_PROP_PACKAGE_CHECK_STORAGE "PMINFO_PKGINFO_PROP_PACKAGE_CHECK_STORAGE" /** Integer property for filtering based on package info*/ #define PMINFO_PKGINFO_PROP_PACKAGE_SIZE "PMINFO_PKGINFO_PROP_PACKAGE_SIZE" @@ -140,12 +144,8 @@ extern "C" { /** String property for filtering based on app info*/ #define PMINFO_APPINFO_PROP_APP_INSTALLED_STORAGE "PMINFO_APPINFO_PROP_APP_INSTALLED_STORAGE" /** String property for filtering based on app info*/ -#define PMINFO_APPINFO_PROP_APP_METADATA_KEY "PMINFO_APPINFO_PROP_APP_METADATA_KEY" - /** String property for filtering based on app info*/ -#define PMINFO_APPINFO_PROP_APP_METADATA_VALUE "PMINFO_APPINFO_PROP_APP_METADATA_VALUE" +#define PMINFO_APPINFO_PROP_PRIVILEGE "PMINFO_APPINFO_PROP_PRIVILEGE" - /** Integer property for filtering app disabled by user*/ -#define PMINFO_APPINFO_PROP_APP_DISABLE_FOR_USER "PMINFO_APPINFO_PROP_APP_DISABLE_FOR_USER_VALUE" /** Integer property for filtering app support mode */ #define PMINFO_APPINFO_PROP_APP_SUPPORT_MODE "PMINFO_APPINFO_PROP_APP_SUPPORT_MODE" @@ -167,6 +167,10 @@ extern "C" { #define PMINFO_APPINFO_PROP_APP_DISABLE "PMINFO_APPINFO_PROP_APP_DISABLE" /** Boolean property for filtering based on app info*/ #define PMINFO_APPINFO_PROP_APP_SUPPORT_DISABLE "PMINFO_APPINFO_PROP_APP_SUPPORT_DISABLE" + /** Boolean property for filtering based on app info*/ +#define PMINFO_APPINFO_PROP_APP_CHECK_STORAGE "PMINFO_APPINFO_PROP_APP_CHECK_STORAGE" +/** Boolean property for filtering based on app info*/ +#define PMINFO_APPINFO_PROP_PKG_DISABLE "PMINFO_APPINFO_PROP_PKG_DISABLE" /** will be updated*/ /** string property for filtering based on pkg info*/ @@ -177,7 +181,6 @@ const char *getIconPath(uid_t uid, bool readonly); char *getUserPkgParserDBPath(void); char *getUserPkgParserDBPathUID(uid_t uid); char *getUserPkgCertDBPath(void); -char *getUserPkgCertDBPathUID(uid_t uid); const char *getUserManifestPath(uid_t uid, bool readonly); /** @@ -224,9 +227,30 @@ static int list_pkgs() */ int pkgmgrinfo_pkginfo_get_list(pkgmgrinfo_pkg_list_cb pkg_list_cb, void *user_data); int pkgmgrinfo_pkginfo_get_usr_list(pkgmgrinfo_pkg_list_cb pkg_list_cb, void *user_data, uid_t uid); + +/** + * @fn int pkgmgrinfo_pkginfo_get_disabled_list(pkgmgrinfo_pkg_list_cb pkg_list_cb, void *user_data) + * @fn int pkgmgrinfo_pkginfo_get_usr_disabled_list(pkgmgrinfo_pkg_list_cb pkg_list_cb, void *user_data, uid_t uid) + * @brief This API gets list of disabled packages + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * @param[in] pkg_list_cb iteration function for list + * @param[in] user_data user data to be passed to callback function + * @param[in] uid the addressee user id of the instruction + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre None + * @post None + */ +int pkgmgrinfo_pkginfo_get_disabled_list(pkgmgrinfo_pkg_list_cb pkg_list_cb, void *user_data); +int pkgmgrinfo_pkginfo_get_usr_disabled_list(pkgmgrinfo_pkg_list_cb pkg_list_cb, void *user_data, uid_t uid); + /** * @fn int pkgmgrinfo_pkginfo_get_pkginfo(const char *pkgid, pkgmgrinfo_pkginfo_h *handle) - * @brief This API creates the package information handle from db + * @brief This API creates the package information handle from db which is not disabled * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API @@ -266,6 +290,68 @@ int pkgmgrinfo_pkginfo_get_pkginfo(const char *pkgid, pkgmgrinfo_pkginfo_h *hand int pkgmgrinfo_pkginfo_get_usr_pkginfo(const char *pkgid, uid_t uid, pkgmgrinfo_pkginfo_h *handle); /** + * @fn int pkgmgrinfo_pkginfo_get_disabled_pkginfo(const char *pkgid, pkgmgrinfo_pkginfo_h *handle) + * @brief This API creates the disabled package information handle from db + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] pkgid pointer to package ID + * @param[in] uid the addressee user id of the instruction + * @param[out] handle pointer to the package info handle. + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre None + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() + * @see pkgmgrinfo_pkginfo_get_pkginfo() + */ +int pkgmgrinfo_pkginfo_get_disabled_pkginfo(const char *pkgid, pkgmgrinfo_pkginfo_h *handle); +int pkgmgrinfo_pkginfo_get_usr_disabled_pkginfo(const char *pkgid, uid_t uid, pkgmgrinfo_pkginfo_h *handle); + +/** + * @fn int pkgmgrinfo_pkginfo_get_all_pkginfo(const char *pkgid, pkgmgrinfo_pkginfo_h *handle) + * @brief This API creates the package information handle from db regardless of its disable or storage status + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] pkgid pointer to package ID + * @param[in] uid the addressee user id of the instruction + * @param[out] handle pointer to the package info handle. + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre None + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() + * @see pkgmgrinfo_pkginfo_get_pkgid() + * @see pkgmgrinfo_pkginfo_is_removable() + * @code +static int get_pkg_type(const char *pkgid) +{ + int ret = 0; + char *type = NULL; + pkgmgrinfo_pkginfo_h handle; + ret = pkgmgrinfo_pkginfo_get_all_pkginfo(pkgid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_pkginfo_get_type(handle, &type); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return -1; + } + printf("pkgtype: %s\n", type); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_pkginfo_get_all_pkginfo(const char *pkgid, pkgmgrinfo_pkginfo_h *handle); +int pkgmgrinfo_pkginfo_get_usr_all_pkginfo(const char *pkgid, uid_t uid, pkgmgrinfo_pkginfo_h *handle); + +/** * @fn int pkgmgrinfo_pkginfo_get_pkgname(pkgmgrinfo_pkginfo_h handle, char **pkg_name) * @brief This API gets the package name from the package ID * @@ -539,6 +625,47 @@ static int get_zip_mount_file(const char *pkgid) int pkgmgrinfo_pkginfo_get_zip_mount_file(pkgmgrinfo_pkginfo_h handle, char **zip_mount_file); /** + * @fn int pkgmgrinfo_pkginfo_get_external_image_path(pkgmgrinfo_pkginfo_h handle, char **ext_image_path) + * @brief This API gets package external image path associated with the package + * if package is installed in external storage. + * Otherwise, the return value will be PMINFO_R_ENOENT. + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to the pkginfo handle. + * @param[out] ext_image_path pointer to hold external image path + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @revall PMINFO_R_ENOENT no valid data + * @pre pkgmgrinfo_pkginfo_get_pkginfo() + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() + * @see pkgmgrinfo_pkginfo_get_pkgid() + * @code +static int get_external_image_path(const char *pkgid) +{ + int ret = 0; + char *ext_image_path = NULL; + pkgmgrinfo_pkginfo_h handle = NULL; + ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_pkginfo_get_external_image_path(handle, &ext_image_path); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return -1; + } + printf("external image path is: %s\n", ext_image_path); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_pkginfo_get_external_image_path(pkgmgrinfo_pkginfo_h handle, char **ext_image_path); + +/** * @fn int pkgmgrinfo_pkginfo_get_install_location(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_install_location *location) * @brief This API gets the package install location from the package ID * @@ -931,465 +1058,375 @@ static int get_pkg_installed_time(const char *pkgid) int pkgmgrinfo_pkginfo_get_installed_time(pkgmgrinfo_pkginfo_h handle, int *installed_time); /** - * @fn int pkgmgrinfo_appinfo_get_launch_mode(pkgmgrinfo_appinfo_h handle, char **mode) - * @brief This API gets the launch mode of package from the package ID + * @fn int pkgmgrinfo_updateinfo_create(pkgmgrinfo_updateinfo_h *update_handle) + * @brief This API creates the update info handle * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to package info handle - * @param[out] mode pointer to hold launch mode of package + * @param[out] handle pointer to package update info handle * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_pkginfo_get_pkginfo() - * @post pkgmgrinfo_pkginfo_destroy_pkginfo() - * @see pkgmgrinfo_pkginfo_get_pkgid() - * @see pkgmgrinfo_pkginfo_is_removable() + * @post pkgmgrinfo_updateinfo_destroy() + * @see pkgmgrinfo_updateinfo_set_pkgid() + * @see pkgmgrinfo_updateinfo_set_version() + * @see pkgmgrinfo_updateinfo_set_type() + * @see pkgmgr_client_register_pkg_updateinfo() * @code -static int get_pkg_launch_mode(const char *pkgid) +static int updateinfo_handle_create() { int ret = 0; - char *launch_mode = NULL; - pkgmgrinfo_pkginfo_h handle; - ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); + + pkgmgrinfo_updateinfo_h handle; + ret = pkgmgrinfo_updateinfo_create(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_get_launch_mode(handle, &mode); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); - return -1; - } - printf("launch mode: %s\n", mode); - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + pkgmgrinfo_update_infodestroy(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_launch_mode(pkgmgrinfo_appinfo_h handle, char **mode); +int pkgmgrinfo_updateinfo_create(pkgmgrinfo_updateinfo_h *update_handle); /** - * @fn int pkgmgrinfo_pkginfo_get_storeclientid(pkgmgrinfo_pkginfo_h handle, char **storeclientid) - * @brief This API gets the store client id of package from the package ID + * @fn int pkgmgrinfo_updateinfo_destroy(pkgmgrinfo_updateinfo_h update_handle) + * @brief This API destroy the update info handle * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to package info handle - * @param[out] storeclientid pointer to hold store client id of package + * @param[in] handle pointer to package update info handle * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_pkginfo_get_pkginfo() - * @post pkgmgrinfo_pkginfo_destroy_pkginfo() - * @see pkgmgrinfo_pkginfo_get_pkgid() - * @see pkgmgrinfo_pkginfo_is_removable() + * @pre pkgmgrinfo_updateinfo_create() + * @see pkgmgr_client_register_pkg_updateinfo() * @code -static int get_pkg_storeclientid(const char *pkgid) +static int updateinfo_handle_destroy(pkgmgrinfo_updateinfo_h handle) { int ret = 0; - char *storeclientid = 0; - pkgmgrinfo_pkginfo_h handle; - ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); + + ret = pkgmgrinfo_updateinfo_destroy(handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_get_storeclientid(handle, &storeclientid); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); - return -1; - } - printf(store client id: %s\n", storeclientid); - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_get_storeclientid(pkgmgrinfo_pkginfo_h handle, char **storeclientid); +int pkgmgrinfo_updateinfo_destroy(pkgmgrinfo_updateinfo_h update_handle); /** - * @fn int pkgmgrinfo_pkginfo_get_mainappid(pkgmgrinfo_pkginfo_h handle, char **mainappid) - * @brief This API gets the main app id of package from the package ID + * @fn int pkgmgrinfo_updateinfo_get_updateinfo(const char *pkgid, pkgmgrinfo_updateinfo_h *update_handle) + * @brief This API creates the package update information handle from db * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to package info handle - * @param[out] mainappid pointer to hold main app id of package + * @param[in] pkgid pointer to package ID + * @param[in] uid the addressee user id of the instruction + * @param[out] update_handle pointer to the package update info handle. * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_pkginfo_get_pkginfo() - * @post pkgmgrinfo_pkginfo_destroy_pkginfo() - * @see pkgmgrinfo_pkginfo_get_pkgid() - * @see pkgmgrinfo_pkginfo_is_removable() + * @pre None + * @post pkgmgrinfo_updateinfo_destroy() + * @see pkgmgrinfo_updateinfo_get_pkgid() + * @see pkgmgrinfo_updateinfo_get_version() + * @see pkgmgrinfo_updateinfo_get_update_type() * @code -static int get_pkg_mainappid(const char *pkgid) +static int get_pkg_update_info(const char *pkgid) { int ret = 0; - char *mainappid = 0; - pkgmgrinfo_pkginfo_h handle; - ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); + char *version; + pkgmgrinfo_updateinfo_h handle; + ret = pkgmgrinfo_updateinfo_get_updateinfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_get_mainappid(handle, &mainappid); + ret = pkgmgrinfo_updateinfo_get_version(handle, &version); if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + pkgmgrinfo_updateinfo_destroy(handle); return -1; } - printf(main app id: %s\n", mainappid); - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + printf("pkg update version: %s\n", version + pkgmgrinfo_updateinfo_destroy(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_get_mainappid(pkgmgrinfo_pkginfo_h handle, char **mainappid); +int pkgmgrinfo_updateinfo_get_updateinfo(const char *pkgid, pkgmgrinfo_updateinfo_h *update_handle); +int pkgmgrinfo_updateinfo_get_usr_updateinfo(const char *pkgid, pkgmgrinfo_updateinfo_h *update_handle, uid_t uid); /** - * @fn int pkgmgrinfo_pkginfo_get_url(pkgmgrinfo_pkginfo_h handle, char **url) - * @brief This API gets the url of package from the package ID + * @fn int pkgmgrinfo_updateinfo_set_pkgid(pkgmgrinfo_updateinfo_h updateinfo_handle, const char *pkgid) + * @brief This API sets given pkgid into handle * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to package info handle - * @param[out] url pointer to hold url of package + * @param[in] handle pointer to package update info handle + * @param[in] pkgid package id * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_pkginfo_get_pkginfo() - * @post pkgmgrinfo_pkginfo_destroy_pkginfo() - * @see pkgmgrinfo_pkginfo_get_pkgid() - * @see pkgmgrinfo_pkginfo_is_removable() * @code -static int get_pkg_url(const char *pkgid) +static int set_pkgid_to_handle(pkgmgrinfo_updateinfo_h handle, const char *pkgid) { int ret = 0; - char *url = 0; - pkgmgrinfo_pkginfo_h handle; - ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); + + ret = pkgmgrinfo_updateinfo_set_pkgid(handle, pkgid); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_get_url(handle, &url); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); - return -1; - } - printf("url : %s\n", url); - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_get_url(pkgmgrinfo_pkginfo_h handle, char **url); +int pkgmgrinfo_updateinfo_set_pkgid(pkgmgrinfo_updateinfo_h updateinfo_handle, const char *pkgid); /** - * @fn int pkgmgrinfo_pkginfo_get_root_path(pkgmgrinfo_pkginfo_h handle, char **path) - * @brief This API gets the root path of package + * @fn int pkgmgrinfo_updateinfo_set_version(pkgmgrinfo_updateinfo_h updateinfo_handle, const char *version) + * @brief This API sets given version into handle * + * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to package info handle - * @param[out] path pointer to hold root path of package + * @param[in] handle pointer to package update info handle + * @param[in] version update version * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error * @code -static int get_root_path(const char *pkgid) +static int set_version_to_handle(pkgmgrinfo_updateinfo_h handle, const char *version) { int ret = 0; - char *path = 0; - pkgmgrinfo_pkginfo_h handle; - ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); - if (ret != PMINFO_R_OK) - return -1; - ret = pkgmgrinfo_pkginfo_get_root_path(handle, &path); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + ret = pkgmgrinfo_updateinfo_set_version(handle, version); + if (ret != PMINFO_R_OK) return -1; - } - printf("path : %s\n", path); - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); - return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_get_root_path(pkgmgrinfo_pkginfo_h handle, char **path); - +int pkgmgrinfo_updateinfo_set_version(pkgmgrinfo_updateinfo_h updateinfo_handle, const char *version); /** - * @fn int pkgmgrinfo_pkginfo_get_csc_path(pkgmgrinfo_pkginfo_h handle, char **path) - * @brief This API gets the csc path of package + * @fn int pkgmgrinfo_updateinfo_set_type(pkgmgrinfo_updateinfo_h updateinfo_handle, pkgmgrinfo_updateinfo_update_type type) + * @brief This API sets given update type into handle * + * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to package info handle - * @param[out] path pointer to hold csc path of package + * @param[in] handle pointer to package update info handle + * @param[in] type update type * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error * @code -static int get_csc_path(const char *pkgid) +static int set_type_to_handle(pkgmgrinfo_updateinfo_h handle, pkgmgrinfo_updateinfo_update_type type) { int ret = 0; - char *path = 0; - pkgmgrinfo_pkginfo_h handle; - ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); - if (ret != PMINFO_R_OK) - return -1; - ret = pkgmgrinfo_pkginfo_get_csc_path(handle, &path); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + ret = pkgmgrinfo_updateinfo_set_type(handle, type); + if (ret != PMINFO_R_OK) return -1; - } - printf("path : %s\n", path); - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); - return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_get_csc_path(pkgmgrinfo_pkginfo_h handle, char **path); +int pkgmgrinfo_updateinfo_set_type(pkgmgrinfo_updateinfo_h updateinfo_handle, pkgmgrinfo_updateinfo_update_type type); /** - * @fn int pkgmgrinfo_pkginfo_get_support_mode(pkgmgrinfo_pkginfo_h handle, int *support_mode) - * @brief This API gets the support_mode of package + * @fn int pkgmgrinfo_updateinfo_get_pkgid(pkgmgrinfo_updateinfo_h update_handle, char **pkgid) + * @brief This API retrieves the pkgid from given update info * + * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to package info handle - * @param[out] support_mode pointer to hold support_mode of package + * @param[in] handle pointer to package update info handle + * @param[out] pkgid package id * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error * @code -static int get_support_mode(const char *pkgid) +static int get_pkgid_from_handle(pkgmgrinfo_updateinfo_h handle) { int ret = 0; - int support_mode = 0; - pkgmgrinfo_pkginfo_h handle = NULL; - ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); - if (ret != PMINFO_R_OK) - return -1; + char *pkgid; - ret = pkgmgrinfo_pkginfo_get_support_mode(handle, &support_mode); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + ret = pkgmgrinfo_updateinfo_get_pkgid(handle, &pkgid); + if (ret != PMINFO_R_OK) return -1; - } - printf("support_mode : %s\n", support_mode); - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); - return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_get_support_mode(pkgmgrinfo_pkginfo_h handle, int *support_mode); +int pkgmgrinfo_updateinfo_get_pkgid(pkgmgrinfo_updateinfo_h update_handle, char **pkgid); /** - * @fn int pkgmgrinfo_pkginfo_compare_pkg_cert_info(const char *lhs_package_id, const char *rhs_package_id, pkgmgrinfo_cert_compare_result_type_e *compare_result) - * @brief This API compare the cert information from given package id + * @fn int pkgmgrinfo_updateinfo_get_version(pkgmgrinfo_updateinfo_h updateinfo_handle, char **version) + * @brief This API retrieves the version from given update info * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] lhs_package_id pointer to first package ID - * @param[in] rhs_package_id pointer to second package ID - * @param[out] compare_result pointer to the compare result. + * @param[in] handle pointer to package update info handle + * @param[out] version update version * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre None - * @post pkgmgrinfo_pkginfo_destroy_pkginfo() - * @see pkgmgrinfo_pkginfo_get_pkgid() - * @see pkgmgrinfo_pkginfo_is_removable() * @code -static int compare_pkg_cert_info(const char *lhs_package_id, const char *rhs_package_id, pkgmgrinfo_cert_compare_result_type_e *compare_result) +static int get_version_from_handle(pkgmgrinfo_updateinfo_h handle) { int ret = 0; - pkgmgrinfo_cert_compare_result_type_e result; + char *version; - ret = pkgmgrinfo_pkginfo_compare_pkg_cert_info(lhs_package_id, rhs_package_id, &result); - if (ret != PMINFO_R_OK) { + ret = pkgmgrinfo_updateinfo_get_version(handle, &version); + if (ret != PMINFO_R_OK) return -1; - } - printf("result: %d\n", result); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_compare_pkg_cert_info(const char *lhs_package_id, const char *rhs_package_id, pkgmgrinfo_cert_compare_result_type_e *compare_result); -int pkgmgrinfo_pkginfo_compare_usr_pkg_cert_info(const char *lhs_package_id, const char *rhs_package_id, uid_t uid, pkgmgrinfo_cert_compare_result_type_e *compare_result); +int pkgmgrinfo_updateinfo_get_version(pkgmgrinfo_updateinfo_h updateinfo_handle, char **version); + /** - * @fn int pkgmgrinfo_pkginfo_compare_app_cert_info(const char *lhs_app_id, const char *rhs_app_id, pkgmgrinfo_cert_compare_result_type_e *compare_result) - * @brief This API compare the cert information from given app id + * @fn int pkgmgrinfo_updateinfo_get_update_type(pkgmgrinfo_updateinfo_h updateinfo_handle, pkgmgrinfo_updateinfo_update_type *type) + * @brief This API retrieves the update type from given update info * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] lhs_app_id pointer to first app ID - * @param[in] rhs_app_id pointer to second app ID - * @param[out] compare_result pointer to the compare result. + * @param[in] handle pointer to package update info handle + * @param[out] type update type * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre None - * @post pkgmgrinfo_pkginfo_destroy_pkginfo() - * @see pkgmgrinfo_pkginfo_get_pkgid() - * @see pkgmgrinfo_pkginfo_is_removable() * @code -static int compare_app_cert_info(const char *lhs_app_id, const char *rhs_app_id, pkgmgrinfo_cert_compare_result_type_e *compare_result) +static int get_type_from_handle(pkgmgrinfo_updateinfo_h handle) { int ret = 0; - pkgmgrinfo_cert_compare_result_type_e result; + pkgmgrinfo_updateinfo_update_type *type; - ret = pkgmgrinfo_pkginfo_compare_app_cert_info(lhs_app_id, rhs_app_id, &result); - if (ret != PMINFO_R_OK) { + ret = pkgmgrinfo_updateinfo_get_type(handle, &type); + if (ret != PMINFO_R_OK) return -1; - } - printf("result: %d\n", result); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_compare_app_cert_info(const char *lhs_app_id, const char *rhs_app_id, pkgmgrinfo_cert_compare_result_type_e *compare_result); -int pkgmgrinfo_pkginfo_compare_usr_app_cert_info(const char *lhs_app_id, const char *rhs_app_id, uid_t uid, pkgmgrinfo_cert_compare_result_type_e *compare_result); +int pkgmgrinfo_updateinfo_get_update_type(pkgmgrinfo_updateinfo_h updateinfo_handle, pkgmgrinfo_updateinfo_update_type *type); + + /** - * @fn int pkgmgrinfo_pkginfo_is_removable(pkgmgrinfo_pkginfo_h handle, bool *removable) - * @brief This API gets the package 'removable' value from the package ID + * @fn int pkgmgrinfo_updateinfo_foreach_updateinfo(pkgmgrinfo_foreach_updateinfo_cb callback, void *user_data) + * @brief This API retrieve the update informations and invoke given callback for it. * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to package info handle - * @param[out] removable pointer to hold package removable value + * @param[in] callback callback to be invoked for each retrieved informations + * @param[in] user_data user data to be passed to callback * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_pkginfo_get_pkginfo() - * @post pkgmgrinfo_pkginfo_destroy_pkginfo() - * @see pkgmgrinfo_pkginfo_get_pkgid() - * @see pkgmgrinfo_pkginfo_is_readonly() * @code -static int get_pkg_removable(const char *pkgid) +static int foreach_pkg_updateinfo(pkgmgrinfo_foreach_updateinfo_cb callback) { int ret = 0; - bool removable; - pkgmgrinfo_pkginfo_h handle; - ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); + + ret = pkgmgrinfo_updateinfo_foreach_updateinfo(callback, NULL); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_is_removable(handle, &removable); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); - return -1; - } - printf("pkg removable: %d\n", removable); - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_is_removable(pkgmgrinfo_pkginfo_h handle, bool *removable); +int pkgmgrinfo_updateinfo_foreach_updateinfo(pkgmgrinfo_foreach_updateinfo_cb callback, void *user_data); +int pkgmgrinfo_updateinfo_usr_foreach_updateinfo(uid_t uid, pkgmgrinfo_foreach_updateinfo_cb callback, void *user_data); /** - * @fn int pkgmgrinfo_pkginfo_is_movable(pkgmgrinfo_pkginfo_h handle, bool *movable) - * @brief This API check that the package can move internal storage to external storage or external storage to internal storage from the package ID + * @fn int pkgmgrinfo_plugininfo_is_executed(const char *pkgid, const char *appid, const char *plugin_type, const char *plugin_name, bool *is_executed); + * @brief This API checkes whether given plugin had been executed with given package ID and application ID or not. * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to package info handle - * @param[out] movable pointer to hold package movable state + * @param[in] pkgid package ID + * @param[in] appid application ID + * @param[in] plugin_type plugin type to be checked + * @param[in] plugin_name plugin name to be checked + * @param[out] is_executed check result * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_pkginfo_get_pkginfo() - * @post pkgmgrinfo_pkginfo_destroy_pkginfo() - * @see pkgmgrinfo_pkginfo_get_pkgid() * @code -static int get_pkg_movable(const char *pkgid) +static bool check_execute_info(const char *pkgid, const char *appid, const char *plugin_type, const char *plugin_name) { int ret = 0; - bool movable; - pkgmgrinfo_pkginfo_h handle; - ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); + bool is_executed; + + ret = pkgmgrinfo_plugininfo_is_executed(pkgid, appid, plugin_type, plugin_name, &is_executed); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_is_movable(handle, &movable); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); - return -1; - } - printf("pkg movable: %d\n", movable); - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + printf("is checked is [%d]\n", is_executed); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_is_movable(pkgmgrinfo_pkginfo_h handle, bool *movable); +int pkgmgrinfo_plugininfo_is_executed(const char *pkgid, const char *appid, + const char *plugin_type, const char *plugin_name, bool *is_executed); /** - * @fn int pkgmgrinfo_pkginfo_is_preload(pkgmgrinfo_pkginfo_h handle, bool *preload) - * @brief This API gets the package 'preload' value from the package ID + * @fn int pkgmgrinfo_plugininfo_foreach_plugininfo(const char *pkgid, const char *plugin_type, const char *plugin_name, pkgmgrinfo_plugin_list_cb plugin_list_cb, void *user_data); + * @brief This API retrieve the previous plugin execution info and invoke callbacks each of it. * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to package info handle - * @param[out] preload pointer to hold package preload value + * @param[in] pkgid package ID + * @param[in] plugin_type type of plugin + * @param[in] plugin_name name of plugin + * @param[in] plugin_list_cb callback to be invoked for each plugin execution info + * @param[out] user_data user data to be passed to callback * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_pkginfo_get_pkginfo() - * @post pkgmgrinfo_pkginfo_destroy_pkginfo() - * @see pkgmgrinfo_pkginfo_get_pkgid() - * @see pkgmgrinfo_pkginfo_is_readonly() * @code -static int get_pkg_preload(const char *pkgid) +static int foreach_pkg_plugininfo(const char *pkgid, const char *plugin_type, const char *plugin_name, pkgmgrinfo_plugin_list_cb callback) { int ret = 0; - bool preload; - pkgmgrinfo_pkginfo_h handle; - ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); + + ret = pkgmgrinfo_plugininfo_foreach_plugininfo(pkgid, plugin_type, plugin_name, callback, NULL); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_is_preload(handle, &preload); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); - return -1; - } - printf("pkg preload: %d\n", preload); - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_is_preload(pkgmgrinfo_pkginfo_h handle, bool *preload); +int pkgmgrinfo_plugininfo_foreach_plugininfo(const char *pkgid, + const char *plugin_type, const char *plugin_name, + pkgmgrinfo_plugin_list_cb plugin_list_cb, void *user_data); /** - * @fn int pkgmgrinfo_pkginfo_is_system(pkgmgrinfo_pkginfo_h handle, bool *system) - * @brief This API gets the value for given handle is system or not + * @fn int pkgmgrinfo_appinfo_get_launch_mode(pkgmgrinfo_appinfo_h handle, char **mode) + * @brief This API gets the launch mode of package from the package ID * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * * @param[in] handle pointer to package info handle - * @param[out] system pointer to hold system is or not + * @param[out] mode pointer to hold launch mode of package * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -1397,38 +1434,38 @@ int pkgmgrinfo_pkginfo_is_preload(pkgmgrinfo_pkginfo_h handle, bool *preload); * @pre pkgmgrinfo_pkginfo_get_pkginfo() * @post pkgmgrinfo_pkginfo_destroy_pkginfo() * @see pkgmgrinfo_pkginfo_get_pkgid() - * @see pkgmgrinfo_pkginfo_is_readonly() + * @see pkgmgrinfo_pkginfo_is_removable() * @code -static int get_pkg_system(const char *pkgid) +static int get_pkg_launch_mode(const char *pkgid) { int ret = 0; - bool system = false; - pkgmgrinfo_pkginfo_h handle = NULL; + char *launch_mode = NULL; + pkgmgrinfo_pkginfo_h handle; ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_is_system(handle, &system); + ret = pkgmgrinfo_pkginfo_get_launch_mode(handle, &mode); if (ret != PMINFO_R_OK) { pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - printf("pkg system: %d\n", system); + printf("launch mode: %s\n", mode); pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_is_system(pkgmgrinfo_pkginfo_h handle, bool *system); +int pkgmgrinfo_appinfo_get_launch_mode(pkgmgrinfo_appinfo_h handle, char **mode); /** - * @fn int pkgmgrinfo_pkginfo_is_readonly(pkgmgrinfo_pkginfo_h handle, bool *readonly) - * @brief This API gets the package 'readonly' value from the package ID + * @fn int pkgmgrinfo_pkginfo_get_storeclientid(pkgmgrinfo_pkginfo_h handle, char **storeclientid) + * @brief This API gets the store client id of package from the package ID * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * * @param[in] handle pointer to package info handle - * @param[out] readonly pointer to hold package readonly value + * @param[out] storeclientid pointer to hold store client id of package * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -1438,37 +1475,36 @@ int pkgmgrinfo_pkginfo_is_system(pkgmgrinfo_pkginfo_h handle, bool *system); * @see pkgmgrinfo_pkginfo_get_pkgid() * @see pkgmgrinfo_pkginfo_is_removable() * @code -static int get_pkg_readonly(const char *pkgid) +static int get_pkg_storeclientid(const char *pkgid) { int ret = 0; - bool readonly; + char *storeclientid = 0; pkgmgrinfo_pkginfo_h handle; ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_is_readonly(handle, &readonly); + ret = pkgmgrinfo_pkginfo_get_storeclientid(handle, &storeclientid); if (ret != PMINFO_R_OK) { pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - printf("pkg readonly: %d\n", readonly); + printf(store client id: %s\n", storeclientid); pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_is_readonly(pkgmgrinfo_pkginfo_h handle, bool *readonly); - +int pkgmgrinfo_pkginfo_get_storeclientid(pkgmgrinfo_pkginfo_h handle, char **storeclientid); /** - * @fn int pkgmgrinfo_pkginfo_is_update(pkgmgrinfo_pkginfo_h handle, bool *update) - * @brief This API gets the package 'upate' value from the package ID + * @fn int pkgmgrinfo_pkginfo_get_mainappid(pkgmgrinfo_pkginfo_h handle, char **mainappid) + * @brief This API gets the main app id of package from the package ID * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * * @param[in] handle pointer to package info handle - * @param[out] update pointer to hold package update value + * @param[out] mainappid pointer to hold main app id of package * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -1476,37 +1512,38 @@ int pkgmgrinfo_pkginfo_is_readonly(pkgmgrinfo_pkginfo_h handle, bool *readonly); * @pre pkgmgrinfo_pkginfo_get_pkginfo() * @post pkgmgrinfo_pkginfo_destroy_pkginfo() * @see pkgmgrinfo_pkginfo_get_pkgid() + * @see pkgmgrinfo_pkginfo_is_removable() * @code -static int get_pkg_update(const char *pkgid) +static int get_pkg_mainappid(const char *pkgid) { int ret = 0; - bool update; + char *mainappid = 0; pkgmgrinfo_pkginfo_h handle; ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_is_update(handle, &update); + ret = pkgmgrinfo_pkginfo_get_mainappid(handle, &mainappid); if (ret != PMINFO_R_OK) { pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - printf("pkg update: %d\n", update); + printf(main app id: %s\n", mainappid); pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_is_update(pkgmgrinfo_pkginfo_h handle, bool *update); +int pkgmgrinfo_pkginfo_get_mainappid(pkgmgrinfo_pkginfo_h handle, char **mainappid); /** - * @fn int pkgmgrinfo_pkginfo_is_support_disable(pkgmgrinfo_pkginfo_h handle, bool *support_disable) - * @brief This API gets the package 'support_disable' value from the package ID + * @fn int pkgmgrinfo_pkginfo_get_url(pkgmgrinfo_pkginfo_h handle, char **url) + * @brief This API gets the url of package from the package ID * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * * @param[in] handle pointer to package info handle - * @param[out] support_disable pointer to hold package support_disable value + * @param[out] url pointer to hold url of package * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -1514,1489 +1551,1394 @@ int pkgmgrinfo_pkginfo_is_update(pkgmgrinfo_pkginfo_h handle, bool *update); * @pre pkgmgrinfo_pkginfo_get_pkginfo() * @post pkgmgrinfo_pkginfo_destroy_pkginfo() * @see pkgmgrinfo_pkginfo_get_pkgid() + * @see pkgmgrinfo_pkginfo_is_removable() * @code -static int get_pkg_support_disable(const char *pkgid) +static int get_pkg_url(const char *pkgid) { int ret = 0; - bool support_disable; - pkgmgrinfo_pkginfo_h handle = NULL; + char *url = 0; + pkgmgrinfo_pkginfo_h handle; ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_is_support_disable(handle, &support_disable); + ret = pkgmgrinfo_pkginfo_get_url(handle, &url); if (ret != PMINFO_R_OK) { pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - printf("pkg support_disable: %d\n", support_disable); + printf("url : %s\n", url); pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_is_support_disable(pkgmgrinfo_pkginfo_h handle, bool *support_disable); - -/** - * @fn int pkgmgrinfo_pkginfo_is_global(pkgmgrinfo_pkginfo_h handle, bool *global) - * @brief This API gets whethere the given package is global package or user package - * - * @par This API is for package-manager client application - * @par Sync (or) Async : Synchronous API - * - * @param[in] handle pointer to package info handle - * @param[in] global pointer to hold package global value - * @return 0 if success, error code(<0) if fail - * @retval PMINFO_R_OK success - * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_pkginfo_get_pkginfo() - * @post pkgmgrinfo_pkginfo_destroy_pkginfo() - * @see pkgmgrinfo_pkginfo_get_pkgid() - static int get_pkg_support_disable(const char *pkgid) - { - int ret = 0; - bool global; - pkgmgrinfo_pkginfo_h handle = NULL; - ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); - if (ret != PMINFO_R_OK) - return -1; - ret = pkgmgrinfo_pkginfo_is_global(handle, &global); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); - return -1; - } - printf("pkg is_global: %d\n", global); - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); - return 0; - } - * @endcode - */ -int pkgmgrinfo_pkginfo_is_global(pkgmgrinfo_pkginfo_h handle, bool *global); +int pkgmgrinfo_pkginfo_get_url(pkgmgrinfo_pkginfo_h handle, char **url); /** - * @fn int pkgmgrinfo_pkginfo_is_accessible(pkgmgrinfo_pkginfo_h handle, bool *accessible) - * @brief This API gets the package 'accessible' value from the package ID + * @fn int pkgmgrinfo_pkginfo_get_root_path(pkgmgrinfo_pkginfo_h handle, char **path) + * @brief This API gets the root path of package * - * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to package info handle - * @param[out] accessible pointer to hold package accessible value + * @param[in] handle pointer to package info handle + * @param[out] path pointer to hold root path of package * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_pkginfo_get_pkginfo() - * @post pkgmgrinfo_pkginfo_destroy_pkginfo() - * @see pkgmgrinfo_pkginfo_get_pkgid() - * @see pkgmgrinfo_pkginfo_is_readonly() * @code -static int get_pkg_accessible(const char *pkgid) +static int get_root_path(const char *pkgid) { int ret = 0; - bool accessible; + char *path = 0; pkgmgrinfo_pkginfo_h handle; ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_is_accessible(handle, &accessible); + + ret = pkgmgrinfo_pkginfo_get_root_path(handle, &path); if (ret != PMINFO_R_OK) { pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - printf("pkg accessible: %d\n", accessible); + printf("path : %s\n", path); pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_is_accessible(pkgmgrinfo_pkginfo_h handle, bool *accessible); +int pkgmgrinfo_pkginfo_get_root_path(pkgmgrinfo_pkginfo_h handle, char **path); + /** - * @fn int pkgmgrinfo_pkginfo_destroy_pkginfo(pkgmgrinfo_pkginfo_h handle) - * @brief This API destroys the package information handle freeing up all the resources + * @fn int pkgmgrinfo_pkginfo_get_csc_path(pkgmgrinfo_pkginfo_h handle, char **path) + * @brief This API gets the csc path of package * - * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the package info handle + * @param[in] handle pointer to package info handle + * @param[out] path pointer to hold csc path of package * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_pkginfo_get_pkginfo() - * @post None - * @see pkgmgrinfo_pkginfo_get_pkgid() - * @see pkgmgrinfo_pkginfo_is_removable() * @code -static int get_pkg_type(const char *pkgid) +static int get_csc_path(const char *pkgid) { int ret = 0; - char *type = NULL; + char *path = 0; pkgmgrinfo_pkginfo_h handle; ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_get_type(handle, &type); + + ret = pkgmgrinfo_pkginfo_get_csc_path(handle, &path); if (ret != PMINFO_R_OK) { pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - printf("pkgtype: %s\n", type); + printf("path : %s\n", path); pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_destroy_pkginfo(pkgmgrinfo_pkginfo_h handle); +int pkgmgrinfo_pkginfo_get_csc_path(pkgmgrinfo_pkginfo_h handle, char **path); /** - * @fn int pkgmgrinfo_pkginfo_filter_create(pkgmgrinfo_pkginfo_filter_h *handle) - * @brief This API creates the package information filter handle from db. All filter properties will be ANDed. - The query will search the entire package information collected from the manifest file of all the installed packages + * @fn int pkgmgrinfo_pkginfo_get_support_mode(pkgmgrinfo_pkginfo_h handle, int *support_mode) + * @brief This API gets the support_mode of package * - * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[out] handle pointer to the package info filter handle. + * @param[in] handle pointer to package info handle + * @param[out] support_mode pointer to hold support_mode of package * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre None - * @post pkgmgrinfo_pkginfo_filter_destroy() - * @see pkgmgrinfo_pkginfo_filter_count() - * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo() * @code -static int get_tpk_pkg_count() +static int get_support_mode(const char *pkgid) { int ret = 0; - int count = 0; - pkgmgrinfo_pkginfo_filter_h handle; - ret = pkgmgrinfo_pkginfo_filter_create(&handle); + int support_mode = 0; + pkgmgrinfo_pkginfo_h handle = NULL; + ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "tpk"); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_filter_destroy(handle); - return -1; - } - ret = pkgmgrinfo_pkginfo_filter_count(handle, &count); + + ret = pkgmgrinfo_pkginfo_get_support_mode(handle, &support_mode); if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_filter_destroy(handle); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - printf("No of tpk pkgs: %d\n", count); - pkgmgrinfo_pkginfo_filter_destroy(handle); + printf("support_mode : %s\n", support_mode); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_filter_create(pkgmgrinfo_pkginfo_filter_h *handle); +int pkgmgrinfo_pkginfo_get_support_mode(pkgmgrinfo_pkginfo_h handle, int *support_mode); /** - * @fn int pkgmgrinfo_pkginfo_filter_destroy(pkgmgrinfo_pkginfo_filter_h handle) - * @brief This API destroys the package information filter handle freeing up all the resources + * @fn int pkgmgrinfo_pkginfo_compare_pkg_cert_info(const char *lhs_package_id, const char *rhs_package_id, pkgmgrinfo_cert_compare_result_type_e *compare_result) + * @brief This API compare the cert information from given package id * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the package info filter handle. + * @param[in] lhs_package_id pointer to first package ID + * @param[in] rhs_package_id pointer to second package ID + * @param[out] compare_result pointer to the compare result. * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_pkginfo_filter_create() - * @post None - * @see pkgmgrinfo_pkginfo_filter_count() - * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo() + * @pre None + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() + * @see pkgmgrinfo_pkginfo_get_pkgid() + * @see pkgmgrinfo_pkginfo_is_removable() * @code -static int get_tpk_pkg_count() +static int compare_pkg_cert_info(const char *lhs_package_id, const char *rhs_package_id, pkgmgrinfo_cert_compare_result_type_e *compare_result) { int ret = 0; - int count = 0; - pkgmgrinfo_pkginfo_filter_h handle; - ret = pkgmgrinfo_pkginfo_filter_create(&handle); - if (ret != PMINFO_R_OK) - return -1; - ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "tpk"); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_filter_destroy(handle); - return -1; - } - ret = pkgmgrinfo_pkginfo_filter_count(handle, &count); + pkgmgrinfo_cert_compare_result_type_e result; + + ret = pkgmgrinfo_pkginfo_compare_pkg_cert_info(lhs_package_id, rhs_package_id, &result); if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_filter_destroy(handle); return -1; } - printf("No of tpk pkgs: %d\n", count); - pkgmgrinfo_pkginfo_filter_destroy(handle); + printf("result: %d\n", result); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_filter_destroy(pkgmgrinfo_pkginfo_filter_h handle); - +int pkgmgrinfo_pkginfo_compare_pkg_cert_info(const char *lhs_package_id, const char *rhs_package_id, pkgmgrinfo_cert_compare_result_type_e *compare_result); +int pkgmgrinfo_pkginfo_compare_usr_pkg_cert_info(const char *lhs_package_id, const char *rhs_package_id, uid_t uid, pkgmgrinfo_cert_compare_result_type_e *compare_result); /** - * @fn int pkgmgrinfo_pkginfo_filter_add_bool(pkgmgrinfo_pkginfo_filter_h handle, const char *property, const bool value) - * @brief This API adds a boolean filter property to the filter handle + * @fn int pkgmgrinfo_pkginfo_compare_app_cert_info(const char *lhs_app_id, const char *rhs_app_id, pkgmgrinfo_cert_compare_result_type_e *compare_result) + * @brief This API compare the cert information from given app id * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the package info filter handle. - * @param[in] property boolean property name. - * @param[in] value value corresponding to the property. + * @param[in] lhs_app_id pointer to first app ID + * @param[in] rhs_app_id pointer to second app ID + * @param[out] compare_result pointer to the compare result. * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_pkginfo_filter_create() - * @post pkgmgrinfo_pkginfo_filter_destroy() - * @see pkgmgrinfo_pkginfo_filter_count() - * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo() + * @pre None + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() + * @see pkgmgrinfo_pkginfo_get_pkgid() + * @see pkgmgrinfo_pkginfo_is_removable() * @code -static int get_preload_pkg_count() +static int compare_app_cert_info(const char *lhs_app_id, const char *rhs_app_id, pkgmgrinfo_cert_compare_result_type_e *compare_result) { int ret = 0; - int count = 0; - pkgmgrinfo_pkginfo_filter_h handle; - ret = pkgmgrinfo_pkginfo_filter_create(&handle); - if (ret != PMINFO_R_OK) - return -1; - ret = pkgmgrinfo_pkginfo_filter_add_bool(handle, PMINFO_PKGINFO_PROP_PACKAGE_PRELOAD, 1); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_filter_destroy(handle); - return -1; - } - ret = pkgmgrinfo_pkginfo_filter_count(handle, &count); + pkgmgrinfo_cert_compare_result_type_e result; + + ret = pkgmgrinfo_pkginfo_compare_app_cert_info(lhs_app_id, rhs_app_id, &result); if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_filter_destroy(handle); return -1; } - printf("No of preload pkgs: %d\n", count); - pkgmgrinfo_pkginfo_filter_destroy(handle); + printf("result: %d\n", result); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_filter_add_bool(pkgmgrinfo_pkginfo_filter_h handle, - const char *property, const bool value); - +int pkgmgrinfo_pkginfo_compare_app_cert_info(const char *lhs_app_id, const char *rhs_app_id, pkgmgrinfo_cert_compare_result_type_e *compare_result); +int pkgmgrinfo_pkginfo_compare_usr_app_cert_info(const char *lhs_app_id, const char *rhs_app_id, uid_t uid, pkgmgrinfo_cert_compare_result_type_e *compare_result); /** - * @fn int pkgmgrinfo_pkginfo_filter_add_int(pkgmgrinfo_pkginfo_filter_h handle, const char *property, const int value) - * @brief This API adds an integer filter property to the filter handle + * @fn int pkgmgrinfo_pkginfo_is_removable(pkgmgrinfo_pkginfo_h handle, bool *removable) + * @brief This API gets the package 'removable' value from the package ID * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the package info filter handle. - * @param[in] property integer property name. - * @param[in] value value corresponding to the property. + * @param[in] handle pointer to package info handle + * @param[out] removable pointer to hold package removable value * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_pkginfo_filter_create() - * @post pkgmgrinfo_pkginfo_filter_destroy() - * @see pkgmgrinfo_pkginfo_filter_count() - * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo() + * @pre pkgmgrinfo_pkginfo_get_pkginfo() + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() + * @see pkgmgrinfo_pkginfo_get_pkgid() + * @see pkgmgrinfo_pkginfo_is_readonly() * @code -static int get_pkg_count() +static int get_pkg_removable(const char *pkgid) { int ret = 0; - int count = 0; - pkgmgrinfo_pkginfo_filter_h handle; - ret = pkgmgrinfo_pkginfo_filter_create(&handle); + bool removable; + pkgmgrinfo_pkginfo_h handle; + ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_filter_add_int(handle, PMINFO_PKGINFO_PROP_PACKAGE_SIZE, 10); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_filter_destroy(handle); - return -1; - } - ret = pkgmgrinfo_pkginfo_filter_count(handle, &count); + ret = pkgmgrinfo_pkginfo_is_removable(handle, &removable); if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_filter_destroy(handle); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - printf("No of preload pkgs: %d\n", count); - pkgmgrinfo_pkginfo_filter_destroy(handle); + printf("pkg removable: %d\n", removable); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_filter_add_int(pkgmgrinfo_pkginfo_filter_h handle, - const char *property, const int value); +int pkgmgrinfo_pkginfo_is_removable(pkgmgrinfo_pkginfo_h handle, bool *removable); /** - * @fn int pkgmgrinfo_pkginfo_filter_add_string(pkgmgrinfo_pkginfo_filter_h handle, const char *property, const char *value) - * @brief This API adds a string filter property to the filter handle + * @fn int pkgmgrinfo_pkginfo_is_movable(pkgmgrinfo_pkginfo_h handle, bool *movable) + * @brief This API check that the package can move internal storage to external storage or external storage to internal storage from the package ID * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the package info filter handle. - * @param[in] property string property name. - * @param[in] value value corresponding to the property. + * @param[in] handle pointer to package info handle + * @param[out] movable pointer to hold package movable state * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_pkginfo_filter_create() - * @post pkgmgrinfo_pkginfo_filter_destroy() - * @see pkgmgrinfo_pkginfo_filter_count() - * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo() + * @pre pkgmgrinfo_pkginfo_get_pkginfo() + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() + * @see pkgmgrinfo_pkginfo_get_pkgid() * @code -static int get_tpk_pkg_count() +static int get_pkg_movable(const char *pkgid) { int ret = 0; - int count = 0; - pkgmgrinfo_pkginfo_filter_h handle; - ret = pkgmgrinfo_pkginfo_filter_create(&handle); + bool movable; + pkgmgrinfo_pkginfo_h handle; + ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "tpk"); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_filter_destroy(handle); - return -1; - } - ret = pkgmgrinfo_pkginfo_filter_count(handle, &count); + ret = pkgmgrinfo_pkginfo_is_movable(handle, &movable); if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_filter_destroy(handle); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - printf("No of tpk pkgs: %d\n", count); - pkgmgrinfo_pkginfo_filter_destroy(handle); + printf("pkg movable: %d\n", movable); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_filter_add_string(pkgmgrinfo_pkginfo_filter_h handle, - const char *property, const char *value); +int pkgmgrinfo_pkginfo_is_movable(pkgmgrinfo_pkginfo_h handle, bool *movable); /** - * @fn int pkgmgrinfo_pkginfo_filter_foreach_pkginfo(pkgmgrinfo_pkginfo_filter_h handle, pkgmgrinfo_pkg_list_cb pkg_cb, void *user_data) - * @brief This API executes the user supplied callback function for each package that satisfy the filter conditions + * @fn int pkgmgrinfo_pkginfo_is_preload(pkgmgrinfo_pkginfo_h handle, bool *preload) + * @brief This API gets the package 'preload' value from the package ID * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the package info filter handle. - * @param[in] pkg_cb callback function. - * @param[in] user_data user data to be passed to the callback function + * @param[in] handle pointer to package info handle + * @param[out] preload pointer to hold package preload value * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_pkginfo_filter_create() - * @post pkgmgrinfo_pkginfo_filter_destroy() - * @see pkgmgrinfo_pkginfo_filter_count() + * @pre pkgmgrinfo_pkginfo_get_pkginfo() + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() + * @see pkgmgrinfo_pkginfo_get_pkgid() + * @see pkgmgrinfo_pkginfo_is_readonly() * @code -int pkg_list_cb(pkgmgrinfo_pkginfo_h handle, void *user_data) -{ - char *pkgid = NULL; - pkgmgrinfo_pkginfo_get_pkgid(handle, &pkgid); - printf("pkg id : %s\n", pkgid); - return 0; -} - -static int get_tpk_pkg_list() +static int get_pkg_preload(const char *pkgid) { int ret = 0; - pkgmgrinfo_pkginfo_filter_h handle; - ret = pkgmgrinfo_pkginfo_filter_create(&handle); + bool preload; + pkgmgrinfo_pkginfo_h handle; + ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "tpk"); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_filter_destroy(handle); - return -1; - } - ret = pkgmgrinfo_pkginfo_filter_foreach_pkginfo(handle, pkg_list_cb, NULL); + ret = pkgmgrinfo_pkginfo_is_preload(handle, &preload); if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_filter_destroy(handle); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - pkgmgrinfo_pkginfo_filter_destroy(handle); + printf("pkg preload: %d\n", preload); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_filter_foreach_pkginfo(pkgmgrinfo_pkginfo_filter_h handle, - pkgmgrinfo_pkg_list_cb pkg_cb, void *user_data); -int pkgmgrinfo_pkginfo_usr_filter_foreach_pkginfo(pkgmgrinfo_pkginfo_filter_h handle, - pkgmgrinfo_pkg_list_cb pkg_cb, void *user_data, uid_t uid); +int pkgmgrinfo_pkginfo_is_preload(pkgmgrinfo_pkginfo_h handle, bool *preload); /** - * @fn int pkgmgrinfo_pkginfo_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count) - * @fn int pkgmgrinfo_pkginfo_usr_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count, uid_t uid) - * @brief This API counts the package that satisfy the filter conditions + * @fn int pkgmgrinfo_pkginfo_is_system(pkgmgrinfo_pkginfo_h handle, bool *system) + * @brief This API gets the value for given handle is system or not * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the package info filter handle. - * @param[in] count pointer to store the count value. - * @param[in] uid the addressee user id of the instruction + * @param[in] handle pointer to package info handle + * @param[out] system pointer to hold system is or not * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_pkginfo_filter_create() - * @post pkgmgrinfo_pkginfo_filter_destroy() - * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo() + * @pre pkgmgrinfo_pkginfo_get_pkginfo() + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() + * @see pkgmgrinfo_pkginfo_get_pkgid() + * @see pkgmgrinfo_pkginfo_is_readonly() * @code -static int get_tpk_pkg_count() +static int get_pkg_system(const char *pkgid) { int ret = 0; - int count = 0; - pkgmgrinfo_pkginfo_filter_h handle; - ret = pkgmgrinfo_pkginfo_filter_create(&handle); + bool system = false; + pkgmgrinfo_pkginfo_h handle = NULL; + ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "tpk"); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_filter_destroy(handle); - return -1; - } - ret = pkgmgrinfo_pkginfo_filter_count(handle, &count); + ret = pkgmgrinfo_pkginfo_is_system(handle, &system); if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_filter_destroy(handle); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - printf("No of tpk pkgs: %d\n", count); - pkgmgrinfo_pkginfo_filter_destroy(handle); + printf("pkg system: %d\n", system); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count); -int pkgmgrinfo_pkginfo_usr_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count, uid_t uid); +int pkgmgrinfo_pkginfo_is_system(pkgmgrinfo_pkginfo_h handle, bool *system); + /** - * @fn int pkgmgrinfo_pkginfo_foreach_privilege(pkgmgrinfo_pkginfo_h handle, - pkgmgrinfo_pkg_privilege_list_cb privilege_func, void *user_data); - * @brief This API gets the list of privilege for a particular package + * @fn int pkgmgrinfo_pkginfo_is_readonly(pkgmgrinfo_pkginfo_h handle, bool *readonly) + * @brief This API gets the package 'readonly' value from the package ID * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API - * @param[in] handle pointer to the package info handle. - * @param[in] privilege_func callback function for list - * @param[in] user_data user data to be passed to callback function + * + * @param[in] handle pointer to package info handle + * @param[out] readonly pointer to hold package readonly value * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error * @pre pkgmgrinfo_pkginfo_get_pkginfo() * @post pkgmgrinfo_pkginfo_destroy_pkginfo() + * @see pkgmgrinfo_pkginfo_get_pkgid() + * @see pkgmgrinfo_pkginfo_is_removable() * @code -int privilege_func(const char *name, void *user_data) -{ - if (strcmp(name, (char *)user_data) == 0) - return -1; - else - return 0; -} - -static int list_privilege(const char *package, char *privilege) +static int get_pkg_readonly(const char *pkgid) { int ret = 0; + bool readonly; pkgmgrinfo_pkginfo_h handle; - ret = pkgmgrinfo_pkginfo_get_pkginfo(package, &handle); + ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_foreach_privilege(handle, privilege_func, (void *)privilege); + ret = pkgmgrinfo_pkginfo_is_readonly(handle, &readonly); if (ret != PMINFO_R_OK) { pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } + printf("pkg readonly: %d\n", readonly); pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_foreach_privilege(pkgmgrinfo_pkginfo_h handle, - pkgmgrinfo_pkg_privilege_list_cb privilege_func, void *user_data); +int pkgmgrinfo_pkginfo_is_readonly(pkgmgrinfo_pkginfo_h handle, bool *readonly); -/* TODO: add doxygen comment here */ -int pkgmgrinfo_pkginfo_is_for_all_users(pkgmgrinfo_pkginfo_h handle, bool *for_all_users); /** - * @fn int pkgmgrinfo_appinfo_clone_appinfo(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_pkginfo_h *clone) - * @brief This API copy the application information handle + * @fn int pkgmgrinfo_pkginfo_is_update(pkgmgrinfo_pkginfo_h handle, bool *update) + * @brief This API gets the package 'update' value from the package ID * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the package info handle. - * @param[out] handle pointer to the package info handle. + * @param[in] handle pointer to package info handle + * @param[out] update pointer to hold package update value * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre None - * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @pre pkgmgrinfo_pkginfo_get_pkginfo() + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() + * @see pkgmgrinfo_pkginfo_get_pkgid() * @code -static int get_appinfo_clone(pkgmgrinfo_pkginfo_h handle) +static int get_pkg_update(const char *pkgid) { int ret = 0; - - pkgmgrinfo_pkginfo_h clone; - - ret = pkgmgrinfo_appinfo_clone_appinfo(handle, &clone); + bool update; + pkgmgrinfo_pkginfo_h handle; + ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - - - printf("package: %s\n", clone->package); - pkgmgrinfo_appinfo_destroy_appinfo(clone); + ret = pkgmgrinfo_pkginfo_is_update(handle, &update); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return -1; + } + printf("pkg update: %d\n", update); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_clone_appinfo(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_pkginfo_h *clone); - +int pkgmgrinfo_pkginfo_is_update(pkgmgrinfo_pkginfo_h handle, bool *update); /** - * @fn int pkgmgrinfo_appinfo_get_list(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_app_component component, - pkgmgrinfo_app_list_cb app_func, void *user_data) - * @brief This API gets list of installed applications for a particular package + * @fn int pkgmgrinfo_pkginfo_is_support_disable(pkgmgrinfo_pkginfo_h handle, bool *support_disable) + * @brief This API gets the package 'support_disable' value from the package ID * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API - * @param[in] handle package info handle - * @param[in] component application component - * @param[in] app_func iteration function for list - * @param[in] user_data user data to be passed to callback function + * + * @param[in] handle pointer to package info handle + * @param[out] support_disable pointer to hold package support_disable value * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error * @pre pkgmgrinfo_pkginfo_get_pkginfo() * @post pkgmgrinfo_pkginfo_destroy_pkginfo() + * @see pkgmgrinfo_pkginfo_get_pkgid() * @code -int app_func(pkgmgrinfo_appinfo_h handle, void *user_data) -{ - char *appid = NULL; - pkgmgrinfo_appinfo_get_appid(handle, &appid); - printf("appid : %s\n", appid); - return 0; -} - -static int list_apps(const char *pkgid) +static int get_pkg_support_disable(const char *pkgid) { int ret = 0; - pkgmgrinfo_pkginfo_h handle; + bool support_disable; + pkgmgrinfo_pkginfo_h handle = NULL; ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_list(handle, PMINFO_UI_APP, app_func, NULL); + ret = pkgmgrinfo_pkginfo_is_support_disable(handle, &support_disable); if (ret != PMINFO_R_OK) { pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } + printf("pkg support_disable: %d\n", support_disable); pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_list(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_app_component component, - pkgmgrinfo_app_list_cb app_func, void *user_data); -int pkgmgrinfo_appinfo_get_usr_list(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_app_component component, - pkgmgrinfo_app_list_cb app_func, void *user_data, uid_t uid); +int pkgmgrinfo_pkginfo_is_support_disable(pkgmgrinfo_pkginfo_h handle, bool *support_disable); /** - * @fn int pkgmgrinfo_appinfo_get_applist_for_amd(pkgmgrinfo_app_list_cb app_func, void *user_data); - * @brief This API gets list of installed applications from all packages with minimum informaion. + * @fn int pkgmgrinfo_pkginfo_is_global(pkgmgrinfo_pkginfo_h handle, bool *global) + * @brief This API gets whether the given package is global package or user package * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API - * @param[in] app_func iteration function for list - * @param[in] user_data user data to be passed to callback function + * + * @param[in] handle pointer to package info handle + * @param[in] global pointer to hold package global value * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre None - * @post None - * @code -int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data) -{ - char *pkgid1 = NULL; - char *pkgid2 = NULL; - pkgid1 = (char *)user_data; - pkgmgrinfo_appinfo_get_pkgid(handle, &pkgid2); - if (strcmp(pkgid1, pkgid2) == 0) { - return -1; - } else { - return 0; - } -} - -static int list_apps() -{ - int ret = 0; - char *name = "helloworld"; - ret = pkgmgrinfo_appinfo_get_applist_for_amd(app_list_cb, (void *)name); - if (ret != PMINFO_R_OK) { - return -1; - } - return 0; -} - * @endcode - */ -int pkgmgrinfo_appinfo_get_usr_applist_for_amd(pkgmgrinfo_app_list_cb app_func, uid_t uid, void *user_data); -int pkgmgrinfo_appinfo_get_applist_for_amd(pkgmgrinfo_app_list_cb app_func, void *user_data); + * @pre pkgmgrinfo_pkginfo_get_pkginfo() + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() + * @see pkgmgrinfo_pkginfo_get_pkgid() + static int get_pkg_support_disable(const char *pkgid) + { + int ret = 0; + bool global; + pkgmgrinfo_pkginfo_h handle = NULL; + ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_pkginfo_is_global(handle, &global); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return -1; + } + printf("pkg is_global: %d\n", global); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return 0; + } + * @endcode + */ +int pkgmgrinfo_pkginfo_is_global(pkgmgrinfo_pkginfo_h handle, bool *global); /** - * @fn int pkgmgrinfo_appinfo_get_installed_list(pkgmgrinfo_app_list_cb app_func, void *user_data); - * @brief This API gets list of installed applications from all packages. + * @fn int pkgmgrinfo_pkginfo_is_accessible(pkgmgrinfo_pkginfo_h handle, bool *accessible) + * @brief This API gets the package 'accessible' value from the package ID * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API - * @param[in] app_func iteration function for list - * @param[in] user_data user data to be passed to callback function + * + * @param[in] handle pointer to package info handle + * @param[out] accessible pointer to hold package accessible value * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre None - * @post None + * @pre pkgmgrinfo_pkginfo_get_pkginfo() + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() + * @see pkgmgrinfo_pkginfo_get_pkgid() + * @see pkgmgrinfo_pkginfo_is_readonly() * @code -int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data) -{ - char *pkgid1 = NULL; - char *pkgid2 = NULL; - pkgid1 = (char *)user_data; - pkgmgrinfo_appinfo_get_pkgid(handle, &pkgid2); - if (strcmp(pkgid1, pkgid2) == 0) { - return -1; - } else { - return 0; - } -} - -static int list_apps() +static int get_pkg_accessible(const char *pkgid) { int ret = 0; - char *name = "helloworld"; - ret = pkgmgrinfo_appinfo_get_installed_list(app_list_cb, (void *)name); + bool accessible; + pkgmgrinfo_pkginfo_h handle; + ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_pkginfo_is_accessible(handle, &accessible); if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } + printf("pkg accessible: %d\n", accessible); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_installed_list(pkgmgrinfo_app_list_cb app_func, void *user_data); -int pkgmgrinfo_appinfo_get_usr_installed_list(pkgmgrinfo_app_list_cb app_func, uid_t uid, void *user_data); +int pkgmgrinfo_pkginfo_is_accessible(pkgmgrinfo_pkginfo_h handle, bool *accessible); /** - * @fn int pkgmgrinfo_appinfo_get_disabled_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle) - * @brief This API creates the disabled application information handle from db + * @fn int pkgmgrinfo_pkginfo_destroy_pkginfo(pkgmgrinfo_pkginfo_h handle) + * @brief This API destroys the package information handle freeing up all the resources * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] appid pointer to appid - * @param[out] handle pointer to the application info handle. + * @param[in] handle pointer to the package info handle * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre None - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_pkgid() - * @see pkgmgrinfo_appinfo_is_multiple() + * @pre pkgmgrinfo_pkginfo_get_pkginfo() + * @post None + * @see pkgmgrinfo_pkginfo_get_pkgid() + * @see pkgmgrinfo_pkginfo_is_removable() * @code -static int get_disabled_app_type(const char *appid) +static int get_pkg_type(const char *pkgid) { int ret = 0; char *type = NULL; - pkgmgrinfo_appinfo_h handle; - ret = pkgmgrinfo_appinfo_get_disabled_appinfo(appid, &handle); + pkgmgrinfo_pkginfo_h handle; + ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_apptype(handle, &type); + ret = pkgmgrinfo_pkginfo_get_type(handle, &type); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_destroy_appinfo(handle); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - printf("apptype: %s\n", type); - pkgmgrinfo_appinfo_destroy_appinfo(handle); + printf("pkgtype: %s\n", type); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_disabled_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle); -int pkgmgrinfo_appinfo_get_usr_disabled_appinfo(const char *appid, uid_t uid, pkgmgrinfo_appinfo_h *handle); +int pkgmgrinfo_pkginfo_destroy_pkginfo(pkgmgrinfo_pkginfo_h handle); /** - * @fn int pkgmgrinfo_appinfo_get_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle) - * @brief This API creates the application information handle from db + * @fn int pkgmgrinfo_pkginfo_filter_create(pkgmgrinfo_pkginfo_filter_h *handle) + * @brief This API creates the package information filter handle from db. All filter properties will be ANDed. + The query will search the entire package information collected from the manifest file of all the installed packages * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] appid pointer to appid - * @param[out] handle pointer to the application info handle. + * @param[out] handle pointer to the package info filter handle. * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error * @pre None - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_pkgid() - * @see pkgmgrinfo_appinfo_is_multiple() + * @post pkgmgrinfo_pkginfo_filter_destroy() + * @see pkgmgrinfo_pkginfo_filter_count() + * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo() * @code -static int get_app_type(const char *appid) +static int get_tpk_pkg_count() { int ret = 0; - char *type = NULL; - pkgmgrinfo_appinfo_h handle; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + int count = 0; + pkgmgrinfo_pkginfo_filter_h handle; + ret = pkgmgrinfo_pkginfo_filter_create(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_apptype(handle, &type); + ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "tpk"); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_destroy_appinfo(handle); + pkgmgrinfo_pkginfo_filter_destroy(handle); return -1; } - printf("apptype: %s\n", type); - pkgmgrinfo_appinfo_destroy_appinfo(handle); + ret = pkgmgrinfo_pkginfo_filter_count(handle, &count); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_filter_destroy(handle); + return -1; + } + printf("No of tpk pkgs: %d\n", count); + pkgmgrinfo_pkginfo_filter_destroy(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle); -int pkgmgrinfo_appinfo_get_usr_appinfo(const char *appid, uid_t uid, pkgmgrinfo_appinfo_h *handle); +int pkgmgrinfo_pkginfo_filter_create(pkgmgrinfo_pkginfo_filter_h *handle); /** - * @fn int pkgmgrinfo_appinfo_get_appid(pkgmgrinfo_appinfo_h handle, char **appid) - * @brief This API gets the application ID + * @fn int pkgmgrinfo_pkginfo_filter_destroy(pkgmgrinfo_pkginfo_filter_h handle) + * @brief This API destroys the package information filter handle freeing up all the resources * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the application info handle. - * @param[out] appid pointer to hold appid + * @param[in] handle pointer to the package info filter handle. * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_pkgid() - * @see pkgmgrinfo_appinfo_is_multiple() + * @pre pkgmgrinfo_pkginfo_filter_create() + * @post None + * @see pkgmgrinfo_pkginfo_filter_count() + * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo() * @code -static int get_app_id(const char *appid) +static int get_tpk_pkg_count() { int ret = 0; - char *app_id = NULL; - pkgmgrinfo_appinfo_h handle; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + int count = 0; + pkgmgrinfo_pkginfo_filter_h handle; + ret = pkgmgrinfo_pkginfo_filter_create(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_appid(handle, &app_id); + ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "tpk"); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_destroy_appinfo(handle); + pkgmgrinfo_pkginfo_filter_destroy(handle); return -1; } - printf("app id: %s\n", app_id); - pkgmgrinfo_appinfo_destroy_appinfo(handle); + ret = pkgmgrinfo_pkginfo_filter_count(handle, &count); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_filter_destroy(handle); + return -1; + } + printf("No of tpk pkgs: %d\n", count); + pkgmgrinfo_pkginfo_filter_destroy(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_appid(pkgmgrinfo_appinfo_h handle, char **appid); +int pkgmgrinfo_pkginfo_filter_destroy(pkgmgrinfo_pkginfo_filter_h handle); /** - * @fn int pkgmgrinfo_appinfo_get_pkgname(pkgmgrinfo_appinfo_h handle, char **pkg_name) - * @brief This API gets the package name of the application + * @fn int pkgmgrinfo_pkginfo_filter_add_bool(pkgmgrinfo_pkginfo_filter_h handle, const char *property, const bool value) + * @brief This API adds a boolean filter property to the filter handle * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the application info handle. - * @param[out] pkg_name pointer to hold package name + * @param[in] handle pointer to the package info filter handle. + * @param[in] property boolean property name. + * @param[in] value value corresponding to the property. * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_appid() - * @see pkgmgrinfo_appinfo_is_multiple() + * @pre pkgmgrinfo_pkginfo_filter_create() + * @post pkgmgrinfo_pkginfo_filter_destroy() + * @see pkgmgrinfo_pkginfo_filter_count() + * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo() * @code -static int get_app_pkgname(const char *appid) +static int get_preload_pkg_count() { int ret = 0; - char *pkgname = NULL; - pkgmgrinfo_appinfo_h handle; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + int count = 0; + pkgmgrinfo_pkginfo_filter_h handle; + ret = pkgmgrinfo_pkginfo_filter_create(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_pkgname(handle, &pkgname); + ret = pkgmgrinfo_pkginfo_filter_add_bool(handle, PMINFO_PKGINFO_PROP_PACKAGE_PRELOAD, 1); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_destroy_appinfo(handle); + pkgmgrinfo_pkginfo_filter_destroy(handle); return -1; } - printf("pkg name: %s\n", pkgname); - pkgmgrinfo_appinfo_destroy_appinfo(handle); + ret = pkgmgrinfo_pkginfo_filter_count(handle, &count); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_filter_destroy(handle); + return -1; + } + printf("No of preload pkgs: %d\n", count); + pkgmgrinfo_pkginfo_filter_destroy(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_pkgname(pkgmgrinfo_appinfo_h handle, char **pkg_name); +int pkgmgrinfo_pkginfo_filter_add_bool(pkgmgrinfo_pkginfo_filter_h handle, + const char *property, const bool value); /** - * @fn int pkgmgrinfo_appinfo_get_pkgid(pkgmgrinfo_appinfo_h handle, char **pkgid) - * @brief This API gets the package id of the application + * @fn int pkgmgrinfo_pkginfo_filter_add_int(pkgmgrinfo_pkginfo_filter_h handle, const char *property, const int value) + * @brief This API adds an integer filter property to the filter handle * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the application info handle. - * @param[out] pkgid pointer to hold package id + * @param[in] handle pointer to the package info filter handle. + * @param[in] property integer property name. + * @param[in] value value corresponding to the property. * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_appid() - * @see pkgmgrinfo_appinfo_is_multiple() + * @pre pkgmgrinfo_pkginfo_filter_create() + * @post pkgmgrinfo_pkginfo_filter_destroy() + * @see pkgmgrinfo_pkginfo_filter_count() + * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo() * @code -static int get_app_pkgid(const char *appid) +static int get_pkg_count() { int ret = 0; - char *pkgid = NULL; - pkgmgrinfo_appinfo_h handle; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + int count = 0; + pkgmgrinfo_pkginfo_filter_h handle; + ret = pkgmgrinfo_pkginfo_filter_create(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_pkgid(handle, &pkgid); + ret = pkgmgrinfo_pkginfo_filter_add_int(handle, PMINFO_PKGINFO_PROP_PACKAGE_SIZE, 10); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_destroy_appinfo(handle); + pkgmgrinfo_pkginfo_filter_destroy(handle); return -1; } - printf("pkg id: %s\n", pkgid); - pkgmgrinfo_appinfo_destroy_appinfo(handle); + ret = pkgmgrinfo_pkginfo_filter_count(handle, &count); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_filter_destroy(handle); + return -1; + } + printf("No of preload pkgs: %d\n", count); + pkgmgrinfo_pkginfo_filter_destroy(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_pkgid(pkgmgrinfo_appinfo_h handle, char **pkgid); +int pkgmgrinfo_pkginfo_filter_add_int(pkgmgrinfo_pkginfo_filter_h handle, + const char *property, const int value); /** - * @fn int pkgmgrinfo_appinfo_get_pkgtype(pkgmgrinfo_appinfo_h handle, char **pkgtype) - * @brief This API gets the package type of the application + * @fn int pkgmgrinfo_pkginfo_filter_add_string(pkgmgrinfo_pkginfo_filter_h handle, const char *property, const char *value) + * @brief This API adds a string filter property to the filter handle * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the application info handle. - * @param[out] pkgtype pointer to hold package type + * @param[in] handle pointer to the package info filter handle. + * @param[in] property string property name. + * @param[in] value value corresponding to the property. * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_appid() - * @see pkgmgrinfo_appinfo_is_multiple() + * @pre pkgmgrinfo_pkginfo_filter_create() + * @post pkgmgrinfo_pkginfo_filter_destroy() + * @see pkgmgrinfo_pkginfo_filter_count() + * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo() * @code -static int get_app_pkgtype(const char *appid) +static int get_tpk_pkg_count() { int ret = 0; - char *pkgtype = NULL; - pkgmgrinfo_appinfo_h handle = NULL; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + int count = 0; + pkgmgrinfo_pkginfo_filter_h handle; + ret = pkgmgrinfo_pkginfo_filter_create(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_pkgtype(handle, &pkgtype); + ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "tpk"); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_destroy_appinfo(handle); + pkgmgrinfo_pkginfo_filter_destroy(handle); return -1; } - printf("pkgtype: %s\n", pkgtype); - pkgmgrinfo_appinfo_destroy_appinfo(handle); + ret = pkgmgrinfo_pkginfo_filter_count(handle, &count); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_filter_destroy(handle); + return -1; + } + printf("No of tpk pkgs: %d\n", count); + pkgmgrinfo_pkginfo_filter_destroy(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_pkgtype(pkgmgrinfo_appinfo_h handle, char **pkgtype); +int pkgmgrinfo_pkginfo_filter_add_string(pkgmgrinfo_pkginfo_filter_h handle, + const char *property, const char *value); /** - * @fn int pkgmgrinfo_appinfo_get_exec(pkgmgrinfo_appinfo_h handle, char **exec) - * @brief This API gets the executable name of the application + * @fn int pkgmgrinfo_pkginfo_filter_foreach_pkginfo(pkgmgrinfo_pkginfo_filter_h handle, pkgmgrinfo_pkg_list_cb pkg_cb, void *user_data) + * @brief This API executes the user supplied callback function for each package that satisfy the filter conditions * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the application info handle. - * @param[out] exec pointer to hold app exec name + * @param[in] handle pointer to the package info filter handle. + * @param[in] pkg_cb callback function. + * @param[in] user_data user data to be passed to the callback function * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_appid() - * @see pkgmgrinfo_appinfo_is_multiple() + * @pre pkgmgrinfo_pkginfo_filter_create() + * @post pkgmgrinfo_pkginfo_filter_destroy() + * @see pkgmgrinfo_pkginfo_filter_count() * @code -static int get_app_exec(const char *appid) +int pkg_list_cb(pkgmgrinfo_pkginfo_h handle, void *user_data) +{ + char *pkgid = NULL; + pkgmgrinfo_pkginfo_get_pkgid(handle, &pkgid); + printf("pkg id : %s\n", pkgid); + return 0; +} + +static int get_tpk_pkg_list() { int ret = 0; - char *exec = NULL; - pkgmgrinfo_appinfo_h handle; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + pkgmgrinfo_pkginfo_filter_h handle; + ret = pkgmgrinfo_pkginfo_filter_create(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_exec(handle, &exec); + ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "tpk"); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_destroy_appinfo(handle); + pkgmgrinfo_pkginfo_filter_destroy(handle); return -1; } - printf("exec name: %s\n", exec); - pkgmgrinfo_appinfo_destroy_appinfo(handle); + ret = pkgmgrinfo_pkginfo_filter_foreach_pkginfo(handle, pkg_list_cb, NULL); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_filter_destroy(handle); + return -1; + } + pkgmgrinfo_pkginfo_filter_destroy(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_exec(pkgmgrinfo_appinfo_h handle, char **exec); +int pkgmgrinfo_pkginfo_filter_foreach_pkginfo(pkgmgrinfo_pkginfo_filter_h handle, + pkgmgrinfo_pkg_list_cb pkg_cb, void *user_data); +int pkgmgrinfo_pkginfo_usr_filter_foreach_pkginfo(pkgmgrinfo_pkginfo_filter_h handle, + pkgmgrinfo_pkg_list_cb pkg_cb, void *user_data, uid_t uid); /** - * @fn int pkgmgrinfo_appinfo_get_icon(pkgmgrinfo_appinfo_h handle, char **icon) - * @brief This API gets the icon name of the application + * @fn int pkgmgrinfo_pkginfo_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count) + * @fn int pkgmgrinfo_pkginfo_usr_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count, uid_t uid) + * @brief This API counts the package that satisfy the filter conditions * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the application info handle. - * @param[out] icon pointer to hold app icon name + * @param[in] handle pointer to the package info filter handle. + * @param[in] count pointer to store the count value. + * @param[in] uid the addressee user id of the instruction * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_appid() - * @see pkgmgrinfo_appinfo_is_multiple() + * @pre pkgmgrinfo_pkginfo_filter_create() + * @post pkgmgrinfo_pkginfo_filter_destroy() + * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo() * @code -static int get_app_icon(const char *appid) +static int get_tpk_pkg_count() { int ret = 0; - char *icon = NULL; - pkgmgrinfo_appinfo_h handle; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + int count = 0; + pkgmgrinfo_pkginfo_filter_h handle; + ret = pkgmgrinfo_pkginfo_filter_create(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_icon(handle, &icon); + ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "tpk"); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_destroy_appinfo(handle); + pkgmgrinfo_pkginfo_filter_destroy(handle); return -1; } - printf("icon name: %s\n", icon); - pkgmgrinfo_appinfo_destroy_appinfo(handle); + ret = pkgmgrinfo_pkginfo_filter_count(handle, &count); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_filter_destroy(handle); + return -1; + } + printf("No of tpk pkgs: %d\n", count); + pkgmgrinfo_pkginfo_filter_destroy(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_icon(pkgmgrinfo_appinfo_h handle, char **icon); +int pkgmgrinfo_pkginfo_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count); +int pkgmgrinfo_pkginfo_usr_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count, uid_t uid); /** - * @fn int pkgmgrinfo_appinfo_get_label(pkgmgrinfo_appinfo_h handle, char **label) - * @brief This API gets the label of the application + * @fn int pkgmgrinfo_pkginfo_foreach_privilege(pkgmgrinfo_pkginfo_h handle, + pkgmgrinfo_pkg_privilege_list_cb privilege_func, void *user_data); + * @brief This API gets the list of privilege for a particular package * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API - * - * @param[in] handle pointer to the application info handle. - * @param[out] label pointer to hold app label + * @param[in] handle pointer to the package info handle. + * @param[in] privilege_func callback function for list + * @param[in] user_data user data to be passed to callback function * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_appid() - * @see pkgmgrinfo_appinfo_is_multiple() + * @pre pkgmgrinfo_pkginfo_get_pkginfo() + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() * @code -static int get_app_label(const char *appid) +int privilege_func(const char *name, void *user_data) +{ + if (strcmp(name, (char *)user_data) == 0) + return -1; + else + return 0; +} + +static int list_privilege(const char *package, char *privilege) { int ret = 0; - char *label = NULL; - pkgmgrinfo_appinfo_h handle; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + pkgmgrinfo_pkginfo_h handle; + ret = pkgmgrinfo_pkginfo_get_pkginfo(package, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_label(handle, &label); + ret = pkgmgrinfo_pkginfo_foreach_privilege(handle, privilege_func, (void *)privilege); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_destroy_appinfo(handle); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - printf("label : %s\n", label); - pkgmgrinfo_appinfo_destroy_appinfo(handle); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_label(pkgmgrinfo_appinfo_h handle, char **label); +int pkgmgrinfo_pkginfo_foreach_privilege(pkgmgrinfo_pkginfo_h handle, + pkgmgrinfo_pkg_privilege_list_cb privilege_func, void *user_data); /** - * @fn int pkgmgrinfo_appinfo_get_localed_label(const char *appid, const char *locale, char **label) - * @brief This API gets exactly matched label by given appid and locale + * @fn int pkgmgrinfo_pkginfo_foreach_appdefined_privilege(pkgmgrinfo_pkginfo_h handle, + pkgmgrinfo_pkg_appdefined_privilege_list_cb privilege_func, void *user_data); + * @brief This API gets the list of appdefined privilege for a particular package * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API - * - * @param[in] appid pointer to appid - * @param[in] locale pointer to locale - * @param[out] label pointer to hold app label + * @param[in] handle pointer to the package info handle. + * @param[in] privilege_func callback function for list + * @param[in] user_data user data to be passed to callback function * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_pkginfo_get_pkginfo() + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() * @code -static int get_localed_label(const char *appid, const char *locale) +int privilege_func(const char *name, const char *license_path, void *user_data) { - int ret = 0; - char *label = NULL; + printf("appdefined privilege : %s", name); + if (license_path) + printf("licensed privilege, lecense path : %s", license_path); + return 0; +} - ret = pkgmgrinfo_appinfo_get_localed_label(appid, locale, &label); +static int list_appdefined_privilege(const char *package) +{ + int ret = 0; + pkgmgrinfo_pkginfo_h handle; + ret = pkgmgrinfo_pkginfo_get_pkginfo(package, &handle); if (ret != PMINFO_R_OK) return -1; - - printf("localed label: %s\n", label); - - free(label); - + ret = pkgmgrinfo_pkginfo_foreach_appdefined_privilege(handle, privilege_func, NULL); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return -1; + } + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_localed_label(const char *appid, const char *locale, char **label); -int pkgmgrinfo_appinfo_usr_get_localed_label(const char *appid, const char *locale, uid_t uid, char **label); +int pkgmgrinfo_pkginfo_foreach_appdefined_privilege(pkgmgrinfo_pkginfo_h handle, + pkgmgrinfo_pkg_appdefined_privilege_list_cb privilege_func, void *user_data); /** - * @fn int pkgmgrinfo_appinfo_get_metadata_value(pkgmgrinfo_appinfo_h handle, const char *metadata_key, char **metadata_value) - * @brief This API gets metadata value by given metadata key + * @fn int pkgmgrinfo_pkginfo_foreach_plugin(pkgmgrinfo_pkginfo_h handle, + pkgmgrinfo_plugin_list_cb plugin_func, void *user_data); + * @brief This API gets the list of plugin execution info for a particular package * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API - * - * @param[in] handle pointer to the application info handle - * @param[in] metadata_key metadata key - * @param[out] metadata_value pointer to hold metadata value + * @param[in] handle pointer to the package info handle. + * @param[in] plugin_func callback function for list + * @param[in] user_data user data to be passed to callback function * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_pkginfo_get_pkginfo() + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() * @code -static int get_metadata_value(const char *appid, const char *metadata_key) +int plugin_func(const char *pkgid, const char *appid, + const char *plugin_type, const char *plugin_name, + void *user_data) { - int ret = 0; - pkgmgrinfo_appinfo_h handle = NULL; - char *metadata_value = NULL; + printf("appid : %s, type : %s, name : %s\n", appid, plugin_type, plugin_name); - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + return 0; +} + +static int list_plugin(const char *package) +{ + int ret = 0; + pkgmgrinfo_pkginfo_h handle; + ret = pkgmgrinfo_pkginfo_get_pkginfo(package, &handle); if (ret != PMINFO_R_OK) return -1; - - ret = pkgmgrinfo_appinfo_get_metadata_value(handle, metadata_key, &metadata_value); + ret = pkgmgrinfo_pkginfo_foreach_plugin(handle, plugin_func, NULL); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_destroy_appinfo(handle); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - - pkgmgrinfo_appinfo_destroy_appinfo(handle); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_metadata_value(pkgmgrinfo_appinfo_h handle, const char *metadata_key, char **metadata_value); +int pkgmgrinfo_pkginfo_foreach_plugin(pkgmgrinfo_pkginfo_h handle, + pkgmgrinfo_plugin_list_cb plugin_func, void *user_data); + +/* TODO: add doxygen comment here */ +int pkgmgrinfo_pkginfo_is_for_all_users(pkgmgrinfo_pkginfo_h handle, bool *for_all_users); /** - * @fn int pkgmgrinfo_appinfo_get_component(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_component *component) - * @brief This API gets the component of the application + * @fn int pkgmgrinfo_appinfo_clone_appinfo(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_pkginfo_h *clone) + * @brief This API copy the application information handle * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the application info handle. - * @param[out] component pointer to hold app component + * @param[in] handle pointer to the package info handle. + * @param[out] handle pointer to the package info handle. * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_appid() - * @see pkgmgrinfo_appinfo_is_multiple() + * @pre None + * @post pkgmgrinfo_appinfo_destroy_appinfo() * @code -static int get_app_component(const char *appid) +static int get_appinfo_clone(pkgmgrinfo_pkginfo_h handle) { int ret = 0; - pkgmgrinfo_app_component component; - pkgmgrinfo_appinfo_h handle; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + + pkgmgrinfo_pkginfo_h clone; + + ret = pkgmgrinfo_appinfo_clone_appinfo(handle, &clone); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_component(handle, &component); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_destroy_appinfo(handle); - return -1; - } - printf("component : %s\n", component); - pkgmgrinfo_appinfo_destroy_appinfo(handle); + + + printf("package: %s\n", clone->package); + pkgmgrinfo_appinfo_destroy_appinfo(clone); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_component(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_component *component); +int pkgmgrinfo_appinfo_clone_appinfo(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_pkginfo_h *clone); + /** - * @fn int pkgmgrinfo_appinfo_get_apptype(pkgmgrinfo_appinfo_h handle, char **app_type) - * @brief This API gets the apptype of the application + * @fn int pkgmgrinfo_appinfo_get_list(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_app_component component, + pkgmgrinfo_app_list_cb app_func, void *user_data) + * @brief This API gets list of installed applications for a particular package * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API - * - * @param[in] handle pointer to the application info handle. - * @param[out] app_type pointer to hold apptype + * @param[in] handle package info handle + * @param[in] component application component + * @param[in] app_func iteration function for list + * @param[in] user_data user data to be passed to callback function * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_appid() - * @see pkgmgrinfo_appinfo_is_multiple() + * @pre pkgmgrinfo_pkginfo_get_pkginfo() + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() * @code -static int get_app_type(const char *appid) +int app_func(pkgmgrinfo_appinfo_h handle, void *user_data) +{ + char *appid = NULL; + pkgmgrinfo_appinfo_get_appid(handle, &appid); + printf("appid : %s\n", appid); + return 0; +} + +static int list_apps(const char *pkgid) { int ret = 0; - char *apptype = NULL; - pkgmgrinfo_appinfo_h handle; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + pkgmgrinfo_pkginfo_h handle; + ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_apptype(handle, &apptype); + ret = pkgmgrinfo_appinfo_get_list(handle, PMINFO_UI_APP, app_func, NULL); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_destroy_appinfo(handle); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - printf("apptype : %s\n", apptype); - pkgmgrinfo_appinfo_destroy_appinfo(handle); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_apptype(pkgmgrinfo_appinfo_h handle, char **app_type); +int pkgmgrinfo_appinfo_get_list(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_app_component component, + pkgmgrinfo_app_list_cb app_func, void *user_data); +int pkgmgrinfo_appinfo_get_usr_list(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_app_component component, + pkgmgrinfo_app_list_cb app_func, void *user_data, uid_t uid); /** - * @fn int pkgmgrinfo_appinfo_get_operation(pkgmgrinfo_appcontrol_h handle, - int *operation_count, char ***operation) - * @brief This API gets the list of operation of the application + * @fn int pkgmgrinfo_appinfo_get_applist_for_amd(pkgmgrinfo_app_list_cb app_func, void *user_data); + * @brief This API gets list of installed applications from all packages with minimum informaion. * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API - * - * @param[in] handle pointer to the appcontrol handle. - * @param[out] operation_count pointer to hold number of operations - * @param[out] operation pointer to hold list of operations + * @param[in] app_func iteration function for list + * @param[in] user_data user data to be passed to callback function * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_uri() - * @see pkgmgrinfo_appinfo_get_mime() + * @pre None + * @post None * @code -int appcontrol_func(pkgmgrinfo_appcontrol_h handle, void *user_data) +int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data) { - int oc = 0; - int i = 0; - char **operation; - pkgmgrinfo_appinfo_get_operation(handle, &oc, &operation); - for (i = 0; i < oc; i++) { - if (strcmp(operation[i], (char *)user_data) == 0) - return -1; - else - return 0; + char *pkgid1 = NULL; + char *pkgid2 = NULL; + pkgid1 = (char *)user_data; + pkgmgrinfo_appinfo_get_pkgid(handle, &pkgid2); + if (strcmp(pkgid1, pkgid2) == 0) { + return -1; + } else { + return 0; } } -static int check_operation(const char *appid, char *operation) +static int list_apps() { int ret = 0; - pkgmgrinfo_appinfo_h handle; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); - if (ret != PMINFO_R_OK) - return -1; - ret = pkgmgrinfo_appinfo_foreach_appcontrol(handle, appcontrol_func, (void *)operation); + char *name = "helloworld"; + ret = pkgmgrinfo_appinfo_get_applist_for_amd(app_list_cb, (void *)name); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_operation(pkgmgrinfo_appcontrol_h handle, - int *operation_count, char ***operation); +int pkgmgrinfo_appinfo_get_usr_applist_for_amd(pkgmgrinfo_app_list_cb app_func, uid_t uid, void *user_data); +int pkgmgrinfo_appinfo_get_applist_for_amd(pkgmgrinfo_app_list_cb app_func, void *user_data); /** - * @fn int pkgmgrinfo_appinfo_get_uri(pkgmgrinfo_appcontrol_h handle, - int *uri_count, char ***uri) - * @brief This API gets the list of uri of the application + * @fn int pkgmgrinfo_appinfo_get_installed_list(pkgmgrinfo_app_list_cb app_func, void *user_data); + * @brief This API gets list of installed applications from all packages. * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API - * - * @param[in] handle pointer to the appcontrol handle. - * @param[out] uri_count pointer to hold number of uris - * @param[out] uri pointer to hold list of uris + * @param[in] app_func iteration function for list + * @param[in] user_data user data to be passed to callback function * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_operation() - * @see pkgmgrinfo_appinfo_get_mime() + * @pre None + * @post None * @code -int appcontrol_func(pkgmgrinfo_appcontrol_h handle, void *user_data) +int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data) { - int uc = 0; - int i = 0; - char **uri; - pkgmgrinfo_appinfo_get_uri(handle, &uc, &uri); - for (i = 0; i < uc; i++) { - if (strcmp(uri[i], (char *)user_data) == 0) - return -1; - else - return 0; + char *pkgid1 = NULL; + char *pkgid2 = NULL; + pkgid1 = (char *)user_data; + pkgmgrinfo_appinfo_get_pkgid(handle, &pkgid2); + if (strcmp(pkgid1, pkgid2) == 0) { + return -1; + } else { + return 0; } } -static int check_uri(const char *appid, char *uri) +static int list_apps() { int ret = 0; - pkgmgrinfo_appinfo_h handle; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); - if (ret != PMINFO_R_OK) - return -1; - ret = pkgmgrinfo_appinfo_foreach_appcontrol(handle, appcontrol_func, (void *)uri); + char *name = "helloworld"; + ret = pkgmgrinfo_appinfo_get_installed_list(app_list_cb, (void *)name); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_uri(pkgmgrinfo_appcontrol_h handle, - int *uri_count, char ***uri); +int pkgmgrinfo_appinfo_get_installed_list(pkgmgrinfo_app_list_cb app_func, void *user_data); +int pkgmgrinfo_appinfo_get_usr_installed_list(pkgmgrinfo_app_list_cb app_func, uid_t uid, void *user_data); /** - * @fn int pkgmgrinfo_appinfo_get_mime(pkgmgrinfo_appcontrol_h handle, - int *mime_count, char ***mime) - * @brief This API gets the list of mime of the application + * @fn int pkgmgrinfo_appinfo_get_disabled_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle) + * @brief This API creates the disabled application information handle from db * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the appcontrol handle. - * @param[out] mime_count pointer to hold number of mimes - * @param[out] mime pointer to hold list of mimes + * @param[in] appid pointer to appid + * @param[out] handle pointer to the application info handle. * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() + * @pre None * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_uri() - * @see pkgmgrinfo_appinfo_get_operation() + * @see pkgmgrinfo_appinfo_get_pkgid() + * @see pkgmgrinfo_appinfo_is_multiple() * @code -int appcontrol_func(pkgmgrinfo_appcontrol_h handle, void *user_data) -{ - int mc = 0; - int i = 0; - char **mime; - pkgmgrinfo_appinfo_get_operation(handle, &mc, &mime); - for (i = 0; i < mc; i++) { - if (strcmp(mime[i], (char *)user_data) == 0) - return -1; - else - return 0; - } -} - -static int check_mime(const char *appid, char *mime) +static int get_disabled_app_type(const char *appid) { int ret = 0; + char *type = NULL; pkgmgrinfo_appinfo_h handle; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + ret = pkgmgrinfo_appinfo_get_disabled_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_foreach_appcontrol(handle, appcontrol_func, (void *)mime); + ret = pkgmgrinfo_appinfo_get_apptype(handle, &type); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } + printf("apptype: %s\n", type); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_mime(pkgmgrinfo_appcontrol_h handle, - int *mime_count, char ***mime); +int pkgmgrinfo_appinfo_get_disabled_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle); +int pkgmgrinfo_appinfo_get_usr_disabled_appinfo(const char *appid, uid_t uid, pkgmgrinfo_appinfo_h *handle); /** - * @fn int pkgmgrinfo_appinfo_get_subapp(pkgmgrinfo_appcontrol_h handle, - int *subapp_count, char ***subapp) - * @brief This API gets the list of subapp of the application + * @fn int pkgmgrinfo_appinfo_get_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle) + * @brief This API creates the application information handle from db * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the appcontrol handle. - * @param[out] subapp_count pointer to hold number of subapp - * @param[out] subapp pointer to hold list of subapp + * @param[in] appid pointer to appid + * @param[out] handle pointer to the application info handle. * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() + * @pre None * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_uri() - * @see pkgmgrinfo_appinfo_get_operation() + * @see pkgmgrinfo_appinfo_get_pkgid() + * @see pkgmgrinfo_appinfo_is_multiple() * @code -int appcontrol_func(pkgmgrinfo_appcontrol_h handle, void *user_data) -{ - int sc = 0; - int i = 0; - char **subapp = NULL; - pkgmgrinfo_appinfo_get_subapp(handle, &sc, &subapp); - for (i = 0; i < sc; i++) { - if (strcmp(subapp[i], (char *)user_data) == 0) - return -1; - else - return 0; - } -} - -static int check_subapp(const char *appid, char *subapp) +static int get_app_type(const char *appid) { int ret = 0; - pkgmgrinfo_appinfo_h handle = NULL; + char *type = NULL; + pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_foreach_appcontrol(handle, appcontrol_func, (void *)subapp); + ret = pkgmgrinfo_appinfo_get_apptype(handle, &type); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } + printf("apptype: %s\n", type); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_subapp(pkgmgrinfo_appcontrol_h handle, - int *subapp_count, char ***subapp); +int pkgmgrinfo_appinfo_get_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle); +int pkgmgrinfo_appinfo_get_usr_appinfo(const char *appid, uid_t uid, pkgmgrinfo_appinfo_h *handle); /** - * @fn int pkgmgrinfo_appinfo_get_notification_icon(pkgmgrinfo_appinfo_h handle, char **icon) - * @brief This API gets the notification icon of the application + * @fn int pkgmgrinfo_appinfo_get_all_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle) + * @brief This API creates the application information handle from db regardless of its disable or storage status * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the application info handle. - * @param[out] path pointer to hold notification icon + * @param[in] appid pointer to appid + * @param[out] handle pointer to the application info handle. * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() + * @pre None * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_get_pkgid() * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_app_notification_icon(const char *appid) +static int get_app_type(const char *appid) { int ret = 0; - char *notification_icon = NULL; + char *type = NULL; pkgmgrinfo_appinfo_h handle; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + ret = pkgmgrinfo_appinfo_get_all_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_notification_icon(handle, ¬ification_icon); + ret = pkgmgrinfo_appinfo_get_apptype(handle, &type); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("notification icon : %s\n", notification_icon); + printf("apptype: %s\n", type); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_notification_icon(pkgmgrinfo_appinfo_h handle, char **icon); +int pkgmgrinfo_appinfo_get_all_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle); +int pkgmgrinfo_appinfo_get_usr_all_appinfo(const char *appid, uid_t uid, pkgmgrinfo_appinfo_h *handle); /** - * @fn int pkgmgrinfo_appinfo_get_setting_icon(pkgmgrinfo_appinfo_h handle, char **icon) - * @brief This API gets the setting icon of the application + * @fn int pkgmgrinfo_appinfo_get_appid(pkgmgrinfo_appinfo_h handle, char **appid) + * @brief This API gets the application ID * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * * @param[in] handle pointer to the application info handle. - * @param[out] path pointer to hold setting icon + * @param[out] appid pointer to hold appid * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error * @pre pkgmgrinfo_appinfo_get_appinfo() * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_get_pkgid() * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_app_setting_icon(const char *appid) +static int get_app_id(const char *appid) { int ret = 0; - char *setting_icon = NULL; + char *app_id = NULL; pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_setting_icon(handle, &setting_icon); + ret = pkgmgrinfo_appinfo_get_appid(handle, &app_id); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("setting icon : %s\n", setting_icon); + printf("app id: %s\n", app_id); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_setting_icon(pkgmgrinfo_appinfo_h handle, char **icon); +int pkgmgrinfo_appinfo_get_appid(pkgmgrinfo_appinfo_h handle, char **appid); /** - * @fn int pkgmgrinfo_appinfo_get_recent_image_type(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_recentimage *type) - * @brief This API gets the type of recent image on app-tray + * @fn int pkgmgrinfo_appinfo_get_pkgname(pkgmgrinfo_appinfo_h handle, char **pkg_name) + * @brief This API gets the package name of the application * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * * @param[in] handle pointer to the application info handle. - * @param[out] type pointer to hold image type + * @param[out] pkg_name pointer to hold package name * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -3006,36 +2948,36 @@ int pkgmgrinfo_appinfo_get_setting_icon(pkgmgrinfo_appinfo_h handle, char **ico * @see pkgmgrinfo_appinfo_get_appid() * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_app_recent_image_type(const char *appid) +static int get_app_pkgname(const char *appid) { int ret = 0; - pkgmgrinfo_app_recentimage type; + char *pkgname = NULL; pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_recent_image_type(handle, &type); + ret = pkgmgrinfo_appinfo_get_pkgname(handle, &pkgname); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("recent image type: %d\n", type); + printf("pkg name: %s\n", pkgname); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_recent_image_type(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_recentimage *type); - +int pkgmgrinfo_appinfo_get_pkgname(pkgmgrinfo_appinfo_h handle, char **pkg_name); /** - * @fn int pkgmgrinfo_appinfo_get_preview_image(pkgmgrinfo_appinfo_h handle, char **preview_img) - * @brief This API gets the preview image of application + * @fn int pkgmgrinfo_appinfo_get_pkgid(pkgmgrinfo_appinfo_h handle, char **pkgid) + * @brief This API gets the package id of the application * + * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * * @param[in] handle pointer to the application info handle. - * @param[out] preview_img pointer to hold preview image path + * @param[out] pkgid pointer to hold package id * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -3043,38 +2985,38 @@ int pkgmgrinfo_appinfo_get_recent_image_type(pkgmgrinfo_appinfo_h handle, pkgmg * @pre pkgmgrinfo_appinfo_get_appinfo() * @post pkgmgrinfo_appinfo_destroy_appinfo() * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_app_previewimage(const char *appid) +static int get_app_pkgid(const char *appid) { int ret = 0; - char *preview = NULL; - pkgmgrinfo_appinfo_h handle = NULL; + char *pkgid = NULL; + pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_preview_image(handle, &preview); + ret = pkgmgrinfo_appinfo_get_pkgid(handle, &pkgid); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("preview image path : %s\n", preview); + printf("pkg id: %s\n", pkgid); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_preview_image(pkgmgrinfo_appinfo_h handle, char **preview_img); - +int pkgmgrinfo_appinfo_get_pkgid(pkgmgrinfo_appinfo_h handle, char **pkgid); /** - * @fn int pkgmgrinfo_appinfo_get_permission_type(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_permission_type *permission) - * @brief This API gets the package permission type of the application + * @fn int pkgmgrinfo_appinfo_get_pkgtype(pkgmgrinfo_appinfo_h handle, char **pkgtype) + * @brief This API gets the package type of the application * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * * @param[in] handle pointer to the application info handle. - * @param[out] permission pointer to hold package permission + * @param[out] pkgtype pointer to hold package type * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -3082,235 +3024,227 @@ int pkgmgrinfo_appinfo_get_preview_image(pkgmgrinfo_appinfo_h handle, char **pr * @pre pkgmgrinfo_appinfo_get_appinfo() * @post pkgmgrinfo_appinfo_destroy_appinfo() * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_app_permission(const char *appid) +static int get_app_pkgtype(const char *appid) { int ret = 0; - pkgmgrinfo_permission_type permission = 0; - pkgmgrinfo_appinfo_h handle; - + char *pkgtype = NULL; + pkgmgrinfo_appinfo_h handle = NULL; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_permission_type(handle, &permission); + ret = pkgmgrinfo_appinfo_get_pkgtype(handle, &pkgtype); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("permission type: %d\n", permission); + printf("pkgtype: %s\n", pkgtype); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_permission_type(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_permission_type *permission); +int pkgmgrinfo_appinfo_get_pkgtype(pkgmgrinfo_appinfo_h handle, char **pkgtype); /** - * @fn int pkgmgrinfo_appinfo_get_component_type(pkgmgrinfo_appinfo_h handle, char **component_type) - * @brief This API gets the component_type + * @fn int pkgmgrinfo_appinfo_get_exec(pkgmgrinfo_appinfo_h handle, char **exec) + * @brief This API gets the executable name of the application * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * * @param[in] handle pointer to the application info handle. - * @param[out] component_type pointer to hold component_type + * @param[out] exec pointer to hold app exec name * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_pkgid() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_component_type(const char *appid) +static int get_app_exec(const char *appid) { int ret = 0; - char *component_type = NULL; + char *exec = NULL; pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_component_type(handle, &component_type); + ret = pkgmgrinfo_appinfo_get_exec(handle, &exec); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("component_type: %s\n", component_type); + printf("exec name: %s\n", exec); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_component_type(pkgmgrinfo_appinfo_h handle, char **component_type); +int pkgmgrinfo_appinfo_get_exec(pkgmgrinfo_appinfo_h handle, char **exec); /** - * @fn int pkgmgrinfo_appinfo_get_hwacceleration(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_hwacceleration *hwacceleration) - * @brief This API gets the application 'hwacceleration' value from the app ID + * @fn int pkgmgrinfo_appinfo_get_icon(pkgmgrinfo_appinfo_h handle, char **icon) + * @brief This API gets the icon name of the application * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to application info handle - * @param[out] hwacceleration pointer to hold package hwacceleration value + * @param[in] handle pointer to the application info handle. + * @param[out] icon pointer to hold app icon name * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() * @see pkgmgrinfo_appinfo_get_appid() * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_app_hwacceleration(const char *appid) +static int get_app_icon(const char *appid) { int ret = 0; - pkgmgrinfo_app_hwacceleration hwacceleration; + char *icon = NULL; pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_hwacceleration(handle, &hwacceleration); + ret = pkgmgrinfo_appinfo_get_icon(handle, &icon); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("app hwacceleration: %d\n", hwacceleration); + printf("icon name: %s\n", icon); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_hwacceleration(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_hwacceleration *hwacceleration); +int pkgmgrinfo_appinfo_get_icon(pkgmgrinfo_appinfo_h handle, char **icon); /** - * @fn int pkgmgrinfo_appinfo_get_screenreader(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_screenreader *screenreader) - * @brief This API gets the application 'screenreader' value from the app ID + * @fn int pkgmgrinfo_appinfo_get_label(pkgmgrinfo_appinfo_h handle, char **label) + * @brief This API gets the label of the application * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to application info handle - * @param[out] screenreader pointer to hold package accessibility value + * @param[in] handle pointer to the application info handle. + * @param[out] label pointer to hold app label * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() * @see pkgmgrinfo_appinfo_get_appid() * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_app_screenreader(const char *appid) +static int get_app_label(const char *appid) { int ret = 0; - pkgmgrinfo_app_screenreader screenreader = PMINFO_USE_SYSTEM_SETTING; - pkgmgrinfo_appinfo_h handle = NULL; + char *label = NULL; + pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_screenreader(handle, &screenreader); + ret = pkgmgrinfo_appinfo_get_label(handle, &label); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("app screenreader: %d\n", screenreader); + printf("label : %s\n", label); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_screenreader(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_screenreader *screenreader); +int pkgmgrinfo_appinfo_get_label(pkgmgrinfo_appinfo_h handle, char **label); /** - * @fn int pkgmgrinfo_appinfo_get_effectimage(pkgmgrinfo_appinfo_h handle, char **portrait_img, char **landscape_img) - * @brief This API gets the application's landscape & portrait effect images + * @fn int pkgmgrinfo_appinfo_get_localed_label(const char *appid, const char *locale, char **label) + * @brief This API gets exactly matched label by given appid and locale * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to application info handle - * @param[out] portrait_img contains portrait mode effect image - * @param[out] landscape_img contains landscape mode effect image + * @param[in] appid pointer to appid + * @param[in] locale pointer to locale + * @param[out] label pointer to hold app label * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_appid() - * @see pkgmgrinfo_appinfo_is_nodisplay() * @code -static int get_app_effectimages(const char *appid) +static int get_localed_label(const char *appid, const char *locale) { int ret = 0; - char *portraitimg = NULL; - char *landscapeimg = NULL; - pkgmgrinfo_appinfo_h handle; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + char *label = NULL; + + ret = pkgmgrinfo_appinfo_get_localed_label(appid, locale, &label); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_effectimage(handle, &portraitimg, &landscapeimg); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_destroy_appinfo(handle); - return -1; - } - printf("app effect image portrait: %s, app effect image landscape : %s\n", portraitimg, landscapeimg); - pkgmgrinfo_appinfo_destroy_appinfo(handle); + + printf("localed label: %s\n", label); + + free(label); + return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_effectimage(pkgmgrinfo_appinfo_h handle, char **portrait_img, char **landscape_img); +int pkgmgrinfo_appinfo_get_localed_label(const char *appid, const char *locale, char **label); +int pkgmgrinfo_appinfo_usr_get_localed_label(const char *appid, const char *locale, uid_t uid, char **label); /** - * @fn int pkgmgrinfo_appinfo_get_effectimage_type(pkgmgrinfo_appinfo_h handle, char **effectimg_type) - * @brief This API gets the application's effect image type + * @fn int pkgmgrinfo_appinfo_get_metadata_value(pkgmgrinfo_appinfo_h handle, const char *metadata_key, char **metadata_value) + * @brief This API gets metadata value by given metadata key * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to application info handle - * @param[out] effectimg_type contains effect image type + * @param[in] handle pointer to the application info handle + * @param[in] metadata_key metadata key + * @param[out] metadata_value pointer to hold metadata value * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_appid() - * @see pkgmgrinfo_appinfo_is_nodisplay() * @code -static int get_app_effectimage_type(const char *appid) +static int get_metadata_value(const char *appid, const char *metadata_key) { int ret = 0; - char *effectimg_type = NULL; pkgmgrinfo_appinfo_h handle = NULL; + char *metadata_value = NULL; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_effectimage_type(handle, &effectimg_type); + + ret = pkgmgrinfo_appinfo_get_metadata_value(handle, metadata_key, &metadata_value); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("app effect image type: %s\n", effectimg_type); + pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_effectimage_type(pkgmgrinfo_appinfo_h handle, char **effectimg_type); +int pkgmgrinfo_appinfo_get_metadata_value(pkgmgrinfo_appinfo_h handle, const char *metadata_key, char **metadata_value); /** - * @fn int pkgmgrinfo_appinfo_get_submode_mainid(pkgmgrinfo_appinfo_h handle, char **submode_mainid) - * @brief This API gets the submode_mainid of the application + * @fn int pkgmgrinfo_appinfo_get_component(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_component *component) + * @brief This API gets the component of the application * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * * @param[in] handle pointer to the application info handle. - * @param[out] submode_mainid pointer to hold package name + * @param[out] component pointer to hold app component * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -3320,74 +3254,36 @@ int pkgmgrinfo_appinfo_get_effectimage_type(pkgmgrinfo_appinfo_h handle, char ** * @see pkgmgrinfo_appinfo_get_appid() * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_app_submode_mainid(const char *appid) +static int get_app_component(const char *appid) { int ret = 0; - char *submode_mainid = NULL; - pkgmgrinfo_appinfo_h handle = NULL; + pkgmgrinfo_app_component component; + pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_submode_mainid(handle, &submode_mainid); + ret = pkgmgrinfo_appinfo_get_component(handle, &component); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("submode_mainid: %s\n", submode_mainid); + printf("component : %s\n", component); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_submode_mainid(pkgmgrinfo_appinfo_h handle, char **submode_mainid); - -/** - * @fn int pkgmgrinfo_appinfo_get_datacontrol_info(const char *providerid, const char *type, char **appid, char **access); - * @brief This API gets the datacontrol info - * - * @par This API is for package-manager client application - * @par Sync (or) Async : Synchronous API - * - * @param[in] providerid pointer to the providerid of dataconltrol. - * @param[in] type pointer to the type of dataconltrol. - * @param[out] appid pointer to hold appid, need to free after using - * @param[out] access pointer to hold access, need to free after using - * @return 0 if success, error code(<0) if fail - * @retval PMINFO_R_OK success - * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error - * @endcode - */ -int pkgmgrinfo_appinfo_get_datacontrol_info(const char *providerid, const char *type, char **appid, char **access); -int pkgmgrinfo_appinfo_usr_get_datacontrol_info(const char *providerid, const char *type, uid_t uid, char **appid, char **access); - -/** - * @fn int pkgmgrinfo_appinfo_get_datacontrol_appid(const char *providerid, char **appid); - * @brief This API gets the appid of datacontrol - * - * @par This API is for package-manager client application - * @par Sync (or) Async : Synchronous API - * - * @param[in] providerid pointer to the providerid of dataconltrol. - * @param[out] appid pointer to hold appid, need to free after using - * @return 0 if success, error code(<0) if fail - * @retval PMINFO_R_OK success - * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error - * @endcode - */ -int pkgmgrinfo_appinfo_get_datacontrol_appid(const char *providerid, char **appid); -int pkgmgrinfo_appinfo_usr_get_datacontrol_appid(const char *providerid, uid_t uid, char **appid); +int pkgmgrinfo_appinfo_get_component(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_component *component); /** - * @fn int pkgmgrinfo_appinfo_get_alias_appid(pkgmgrinfo_appinfo_h handle, char **alias_appid) - * @brief This API gets the alias_appid of the application + * @fn int pkgmgrinfo_appinfo_get_apptype(pkgmgrinfo_appinfo_h handle, char **app_type) + * @brief This API gets the apptype of the application * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * * @param[in] handle pointer to the application info handle. - * @param[out] alias_appid pointer to hold app alias_appid + * @param[out] app_type pointer to hold apptype * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -3395,188 +3291,254 @@ int pkgmgrinfo_appinfo_usr_get_datacontrol_appid(const char *providerid, uid_t u * @pre pkgmgrinfo_appinfo_get_appinfo() * @post pkgmgrinfo_appinfo_destroy_appinfo() * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_alias_appid(const char *appid) +static int get_app_type(const char *appid) { int ret = 0; - char *alias_appid= 0; - pkgmgrinfo_appinfo_h handle = NULL; + char *apptype = NULL; + pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_alias_appid(handle, &alias_appid); + ret = pkgmgrinfo_appinfo_get_apptype(handle, &apptype); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("alias_appid: %s\n", alias_appid); + printf("apptype : %s\n", apptype); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_alias_appid(pkgmgrinfo_appinfo_h handle, char **alias_appid); +int pkgmgrinfo_appinfo_get_apptype(pkgmgrinfo_appinfo_h handle, char **app_type); /** - * @fn int pkgmgrinfo_appinfo_get_effective_appid(pkgmgrinfo_appinfo_h handle, char **effective_appid) - * @brief This API gets the effective_appid of the application + * @fn int pkgmgrinfo_appinfo_get_operation(pkgmgrinfo_appcontrol_h handle, + int *operation_count, char ***operation) + * @brief This API gets the list of operation of the application * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the application info handle. - * @param[out] effective_appid pointer to hold app effective_appid + * @param[in] handle pointer to the appcontrol handle. + * @param[out] operation_count pointer to hold number of operations + * @param[out] operation pointer to hold list of operations * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error * @pre pkgmgrinfo_appinfo_get_appinfo() * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_get_uri() + * @see pkgmgrinfo_appinfo_get_mime() * @code -static int get_effective_appid(const char *appid) +int appcontrol_func(pkgmgrinfo_appcontrol_h handle, void *user_data) +{ + int oc = 0; + int i = 0; + char **operation; + pkgmgrinfo_appinfo_get_operation(handle, &oc, &operation); + for (i = 0; i < oc; i++) { + if (strcmp(operation[i], (char *)user_data) == 0) + return -1; + else + return 0; + } +} + +static int check_operation(const char *appid, char *operation) { int ret = 0; - char *effective_appid= 0; - pkgmgrinfo_appinfo_h handle = NULL; + pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_effective_appid(handle, &effective_appid); + ret = pkgmgrinfo_appinfo_foreach_appcontrol(handle, appcontrol_func, (void *)operation); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("effective_appid: %s\n", effective_appid); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_effective_appid(pkgmgrinfo_appinfo_h handle, char **effective_appid); +int pkgmgrinfo_appinfo_get_operation(pkgmgrinfo_appcontrol_h handle, + int *operation_count, char ***operation); /** - * @fn int pkgmgrinfo_appinfo_get_tep_name(pkgmgrinfo_appinfo_h handle, char **tep_name) - * @brief This API gets tep(tizen expansion package) file name associated with the package which contain given application + * @fn int pkgmgrinfo_appinfo_get_uri(pkgmgrinfo_appcontrol_h handle, + int *uri_count, char ***uri) + * @brief This API gets the list of uri of the application * - * @par This API is for package-manager client application + * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the appinfo handle. - * @param[out] tep_name pointer to hold tep name + * @param[in] handle pointer to the appcontrol handle. + * @param[out] uri_count pointer to hold number of uris + * @param[out] uri pointer to hold list of uris * @return 0 if success, error code(<0) if fail - * @retval PMINFO_R_OK success - * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_appid() + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_operation() + * @see pkgmgrinfo_appinfo_get_mime() * @code -static int get_tep_name(const char *appid) +int appcontrol_func(pkgmgrinfo_appcontrol_h handle, void *user_data) +{ + int uc = 0; + int i = 0; + char **uri; + pkgmgrinfo_appinfo_get_uri(handle, &uc, &uri); + for (i = 0; i < uc; i++) { + if (strcmp(uri[i], (char *)user_data) == 0) + return -1; + else + return 0; + } +} + +static int check_uri(const char *appid, char *uri) { int ret = 0; - char *tep_name = NULL; - pkgmgrinfo_appinfo_h handle = NULL; + pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_tep_name(handle, &tep_name); + ret = pkgmgrinfo_appinfo_foreach_appcontrol(handle, appcontrol_func, (void *)uri); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("TEP name is: %s\n", tep_name); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_tep_name(pkgmgrinfo_appinfo_h handle, char **tep_name); +int pkgmgrinfo_appinfo_get_uri(pkgmgrinfo_appcontrol_h handle, + int *uri_count, char ***uri); /** - * @fn int pkgmgrinfo_appinfo_get_zip_mount_file(pkgmgrinfo_appinfo_h handle, char **zip_mount_file) - * @brief This API gets zip mount file name associated with the package which contain given application - * If package is not "mount-installed", zip_mount_file is left as NULL pointer. + * @fn int pkgmgrinfo_appinfo_get_mime(pkgmgrinfo_appcontrol_h handle, + int *mime_count, char ***mime) + * @brief This API gets the list of mime of the application * - * @par This API is for package-manager client application + * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the appinfo handle. - * @param[out] zip_mount_file pointer to hold zip mount file name + * @param[in] handle pointer to the appcontrol handle. + * @param[out] mime_count pointer to hold number of mimes + * @param[out] mime pointer to hold list of mimes * @return 0 if success, error code(<0) if fail - * @retval PMINFO_R_OK success - * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_appid() + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_uri() + * @see pkgmgrinfo_appinfo_get_operation() * @code -static int get_zip_mount_file(const char *appid) +int appcontrol_func(pkgmgrinfo_appcontrol_h handle, void *user_data) +{ + int mc = 0; + int i = 0; + char **mime; + pkgmgrinfo_appinfo_get_operation(handle, &mc, &mime); + for (i = 0; i < mc; i++) { + if (strcmp(mime[i], (char *)user_data) == 0) + return -1; + else + return 0; + } +} + +static int check_mime(const char *appid, char *mime) { int ret = 0; - char *zip_mount_file = NULL; - pkgmgrinfo_appinfo_h handle = NULL; + pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_zip_mount_file(handle, &zip_mount_file); + ret = pkgmgrinfo_appinfo_foreach_appcontrol(handle, appcontrol_func, (void *)mime); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("Mount file name is: %s\n", zip_mount_file); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_zip_mount_file(pkgmgrinfo_appinfo_h handle, char **zip_mount_file); +int pkgmgrinfo_appinfo_get_mime(pkgmgrinfo_appcontrol_h handle, + int *mime_count, char ***mime); /** - * @fn int pkgmgrinfo_appinfo_get_root_path(pkgmgrinfo_appinfo_h handle, char **path) - * @brief This API gets the root path of application + * @fn int pkgmgrinfo_appinfo_get_subapp(pkgmgrinfo_appcontrol_h handle, + int *subapp_count, char ***subapp) + * @brief This API gets the list of subapp of the application * + * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to appinfo handle - * @param[out] path pointer to hold root path of application + * @param[in] handle pointer to the appcontrol handle. + * @param[out] subapp_count pointer to hold number of subapp + * @param[out] subapp pointer to hold list of subapp * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_uri() + * @see pkgmgrinfo_appinfo_get_operation() * @code -static int get_root_path(const char *appid) +int appcontrol_func(pkgmgrinfo_appcontrol_h handle, void *user_data) +{ + int sc = 0; + int i = 0; + char **subapp = NULL; + pkgmgrinfo_appinfo_get_subapp(handle, &sc, &subapp); + for (i = 0; i < sc; i++) { + if (strcmp(subapp[i], (char *)user_data) == 0) + return -1; + else + return 0; + } +} + +static int check_subapp(const char *appid, char *subapp) { int ret = 0; - char *path = 0; - pkgmgrinfo_appinfo_h handle; + pkgmgrinfo_appinfo_h handle = NULL; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - - ret = pkgmgrinfo_appinfo_get_root_path(handle, &path); + ret = pkgmgrinfo_appinfo_foreach_appcontrol(handle, appcontrol_func, (void *)subapp); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("path : %s\n", path); pkgmgrinfo_appinfo_destroy_appinfo(handle); - return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_root_path(pkgmgrinfo_appinfo_h handle, char **root_path); +int pkgmgrinfo_appinfo_get_subapp(pkgmgrinfo_appcontrol_h handle, + int *subapp_count, char ***subapp); /** - * @fn int pkgmgrinfo_appinfo_get_api_version(pkgmgrinfo_appinfo_h handle, char **api_version) - * @brief This API gets the application api_version from the application ID + * @fn int pkgmgrinfo_appinfo_get_notification_icon(pkgmgrinfo_appinfo_h handle, char **icon) + * @brief This API gets the notification icon of the application * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to appinfo handle - * @param[out] api_version pointer to hold application api_version + * @param[in] handle pointer to the application info handle. + * @param[out] path pointer to hold notification icon * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -3584,37 +3546,38 @@ int pkgmgrinfo_appinfo_get_root_path(pkgmgrinfo_appinfo_h handle, char **root_pa * @pre pkgmgrinfo_appinfo_get_appinfo() * @post pkgmgrinfo_appinfo_destroy_appinfo() * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_app_api_version(const char *appid) +static int get_app_notification_icon(const char *appid) { int ret = 0; - char *api_version = NULL; - pkgmgrinfo_appinfo_h handle = NULL; + char *notification_icon = NULL; + pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_api_version(handle, &api_version); + ret = pkgmgrinfo_appinfo_get_notification_icon(handle, ¬ification_icon); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("app api_version: %s\n", api_version); + printf("notification icon : %s\n", notification_icon); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_api_version(pkgmgrinfo_appinfo_h handle, char **api_version); +int pkgmgrinfo_appinfo_get_notification_icon(pkgmgrinfo_appinfo_h handle, char **icon); /** - * @fn int pkgmgrinfo_appinfo_get_installed_time(pkgmgrinfo_appinfo_h handle, int *installed_time) - * @brief This API gets the installed_time of the application + * @fn int pkgmgrinfo_appinfo_get_recent_image_type(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_recentimage *type) + * @brief This API gets the type of recent image on app-tray * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * * @param[in] handle pointer to the application info handle. - * @param[out] installed_time pointer to hold installed_time + * @param[out] type pointer to hold image type * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -3624,36 +3587,36 @@ int pkgmgrinfo_appinfo_get_api_version(pkgmgrinfo_appinfo_h handle, char **api_v * @see pkgmgrinfo_appinfo_get_appid() * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_app_installed_time(const char *appid) +static int get_app_recent_image_type(const char *appid) { int ret = 0; - int installed_time = 0; - pkgmgrinfo_appinfo_h handle = NULL; + pkgmgrinfo_app_recentimage type; + pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_installed_time(handle, &installed_time); + ret = pkgmgrinfo_appinfo_get_recent_image_type(handle, &type); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("installed_time: %d\n", installed_time); + printf("recent image type: %d\n", type); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_installed_time(pkgmgrinfo_appinfo_h handle, int *installed_time); +int pkgmgrinfo_appinfo_get_recent_image_type(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_recentimage *type); + /** - * @fn int pkgmgrinfo_appinfo_get_support_mode(pkgmgrinfo_appinfo_h handle, int *support_mode) - * @brief This API gets the support_mode of the application + * @fn int pkgmgrinfo_appinfo_get_preview_image(pkgmgrinfo_appinfo_h handle, char **preview_img) + * @brief This API gets the preview image of application * - * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * * @param[in] handle pointer to the application info handle. - * @param[out] support_mode pointer to hold app support_mode + * @param[out] preview_img pointer to hold preview image path * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -3662,255 +3625,194 @@ int pkgmgrinfo_appinfo_get_installed_time(pkgmgrinfo_appinfo_h handle, int *inst * @post pkgmgrinfo_appinfo_destroy_appinfo() * @see pkgmgrinfo_appinfo_get_appid() * @code -static int get_app_support_mode(const char *appid) +static int get_app_previewimage(const char *appid) { int ret = 0; - int support_mode = 0; + char *preview = NULL; pkgmgrinfo_appinfo_h handle = NULL; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_support_mode(handle, &support_mode); + ret = pkgmgrinfo_appinfo_get_preview_image(handle, &preview); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("support_mode: %s\n", support_mode); + printf("preview image path : %s\n", preview); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_support_mode(pkgmgrinfo_appinfo_h handle, int *support_mode); +int pkgmgrinfo_appinfo_get_preview_image(pkgmgrinfo_appinfo_h handle, char **preview_img); + /** - * @fn int pkgmgrinfo_appinfo_foreach_permission(pkgmgrinfo_appinfo_h handle, - pkgmgrinfo_app_permission_list_cb permission_func, void *user_data); - * @brief This API gets the list of permission for a particular application + * @fn int pkgmgrinfo_appinfo_get_permission_type(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_permission_type *permission) + * @brief This API gets the package permission type of the application * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API - * @param[in] handle pointer to the application info handle. - * @param[in] permission_func callback function for list - * @param[in] user_data user data to be passed to callback function + * + * @param[in] handle pointer to the application info handle. + * @param[out] permission pointer to hold package permission * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error * @pre pkgmgrinfo_appinfo_get_appinfo() * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() * @code -int permission_func(const char *name, void *user_data) -{ - if (strcmp(name, (char *)user_data) == 0) - return -1; - else - return 0; -} - -static int list_permission(const char *appid, char *permission) +static int get_app_permission(const char *appid) { int ret = 0; + pkgmgrinfo_permission_type permission = 0; pkgmgrinfo_appinfo_h handle; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_foreach_permission(handle, permission_func, (void *)permission); + ret = pkgmgrinfo_appinfo_get_permission_type(handle, &permission); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } + printf("permission type: %d\n", permission); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_foreach_permission(pkgmgrinfo_appinfo_h handle, - pkgmgrinfo_app_permission_list_cb permission_func, void *user_data); +int pkgmgrinfo_appinfo_get_permission_type(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_permission_type *permission); /** - * @fn int pkgmgrinfo_appinfo_foreach_category(pkgmgrinfo_appinfo_h handle, - pkgmgrinfo_app_category_list_cb category_func, void *user_data); - * @brief This API gets the list of category for a particular application + * @fn int pkgmgrinfo_appinfo_get_component_type(pkgmgrinfo_appinfo_h handle, char **component_type) + * @brief This API gets the component_type * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API - * @param[in] handle pointer to the application info handle. - * @param[in] category_func callback function for list - * @param[in] user_data user data to be passed to callback function + * + * @param[in] handle pointer to the application info handle. + * @param[out] component_type pointer to hold component_type * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_pkgid() + * @see pkgmgrinfo_appinfo_is_multiple() * @code -int category_func(const char *name, void *user_data) -{ - if (strcmp(name, (char *)user_data) == 0) - return -1; - else - return 0; -} - -static int list_category(const char *appid, char *category) +static int get_component_type(const char *appid) { int ret = 0; + char *component_type = NULL; pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_foreach_category(handle, category_func, (void *)category); + ret = pkgmgrinfo_appinfo_get_component_type(handle, &component_type); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } + printf("component_type: %s\n", component_type); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_foreach_category(pkgmgrinfo_appinfo_h handle, - pkgmgrinfo_app_category_list_cb category_func, void *user_data); +int pkgmgrinfo_appinfo_get_component_type(pkgmgrinfo_appinfo_h handle, char **component_type); /** - * @fn int pkgmgrinfo_appinfo_foreach_metadata(pkgmgrinfo_appinfo_h handle, - pkgmgrinfo_app_metadata_list_cb metadata_func, void *user_data); - * @brief This API gets the list of metadata for a particular application + * @fn int pkgmgrinfo_appinfo_get_hwacceleration(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_hwacceleration *hwacceleration) + * @brief This API gets the application 'hwacceleration' value from the app ID * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API - * @param[in] handle pointer to the application info handle. - * @param[in] metadata_func callback function for list - * @param[in] user_data user data to be passed to callback function + * + * @param[in] handle pointer to application info handle + * @param[out] hwacceleration pointer to hold package hwacceleration value * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_is_multiple() * @code -int metadata_func(const char *key, const char *value, void *user_data) -{ - if (strcmp(key, (char *)user_data) == 0) { - printf("Value is %s\n", value); - return -1; - } - else - return 0; -} - -static int list_metadata(const char *appid, char *key) +static int get_app_hwacceleration(const char *appid) { int ret = 0; + pkgmgrinfo_app_hwacceleration hwacceleration; pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_foreach_metadata(handle, metadata_func, (void *)key); + ret = pkgmgrinfo_appinfo_get_hwacceleration(handle, &hwacceleration); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } + printf("app hwacceleration: %d\n", hwacceleration); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_foreach_metadata(pkgmgrinfo_appinfo_h handle, - pkgmgrinfo_app_metadata_list_cb metadata_func, void *user_data); - +int pkgmgrinfo_appinfo_get_hwacceleration(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_hwacceleration *hwacceleration); /** - * @fn int pkgmgrinfo_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle, - pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data); - * @fn int pkgmgrinfo_usr_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle, - pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data, uid_t uid); - * @brief This API gets the list of app-control for a particular application + * @fn int pkgmgrinfo_appinfo_get_screenreader(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_screenreader *screenreader) + * @brief This API gets the application 'screenreader' value from the app ID * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API - * @param[in] handle pointer to the application info handle. - * @param[in] appcontrol_func callback function for list - * @param[in] user_data user data to be passed to callback function - * @param[in] uid the addressee user id of the instruction + * + * @param[in] handle pointer to application info handle + * @param[out] screenreader pointer to hold package accessibility value * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_is_multiple() * @code -int appcontrol_func(pkgmgrinfo_appcontrol_h handle, void *user_data) -{ - int oc = 0; - int i = 0; - char **operation; - pkgmgrinfo_appinfo_get_operation(handle, &oc, &operation); - for (i = 0; i < oc; i++) { - if (strcmp(operation[i], (char *)user_data) == 0) - return -1; - else - return 0; - } -} - -static int check_operation(const char *appid, char *operation) +static int get_app_screenreader(const char *appid) { int ret = 0; - pkgmgrinfo_appinfo_h handle; + pkgmgrinfo_app_screenreader screenreader = PMINFO_USE_SYSTEM_SETTING; + pkgmgrinfo_appinfo_h handle = NULL; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_foreach_appcontrol(handle, appcontrol_func, (void *)operation); + ret = pkgmgrinfo_appinfo_get_screenreader(handle, &screenreader); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } + printf("app screenreader: %d\n", screenreader); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle, - pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data); - -/** - * @brief - */ -int pkgmgrinfo_appinfo_foreach_background_category(pkgmgrinfo_appinfo_h handle, - pkgmgrinfo_app_background_category_list_cb category_func, void *user_data); - -/** - * @fn int pkgmgrinfo_appinfo_foreach_splash_screen(pkgmgrinfo_appinfo_h handle, - pkgmgrinfo_app_splash_screen_list_cb splash_screen_func, void *user_data); - * @brief This API gets the list of splashscreen for a particular application - * - * @par This API is for package-manager client application - * @par Sync (or) Async : Synchronous API - * @param[in] handle pointer to the application info handle. - * @param[in] splash_screen_func callback function for list - * @param[in] user_data user data to be passed to callback function - * @return 0 if success, error code(<0) if fail - * @retval PMINFO_R_OK success - * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @code - */ -int pkgmgrinfo_appinfo_foreach_splash_screen(pkgmgrinfo_appinfo_h handle, - pkgmgrinfo_app_splash_screen_list_cb splash_screen_func, void *user_data); +int pkgmgrinfo_appinfo_get_screenreader(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_screenreader *screenreader); /** - * @fn int pkgmgrinfo_appinfo_is_nodisplay(pkgmgrinfo_appinfo_h handle, bool *nodisplay) - * @brief This API gets the application 'nodisplay' value from the app ID + * @fn int pkgmgrinfo_appinfo_get_effectimage(pkgmgrinfo_appinfo_h handle, char **portrait_img, char **landscape_img) + * @brief This API gets the application's landscape & portrait effect images * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * * @param[in] handle pointer to application info handle - * @param[out] nodisplay pointer to hold package nodisplay value + * @param[out] portrait_img contains portrait mode effect image + * @param[out] landscape_img contains landscape mode effect image * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -3918,38 +3820,39 @@ int pkgmgrinfo_appinfo_foreach_splash_screen(pkgmgrinfo_appinfo_h handle, * @pre pkgmgrinfo_appinfo_get_appinfo() * @post pkgmgrinfo_appinfo_destroy_appinfo() * @see pkgmgrinfo_appinfo_get_appid() - * @see pkgmgrinfo_appinfo_is_multiple() + * @see pkgmgrinfo_appinfo_is_nodisplay() * @code -static int get_app_nodisplay(const char *appid) +static int get_app_effectimages(const char *appid) { int ret = 0; - bool nodisplay; + char *portraitimg = NULL; + char *landscapeimg = NULL; pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_is_nodisplay(handle, &nodisplay); + ret = pkgmgrinfo_appinfo_get_effectimage(handle, &portraitimg, &landscapeimg); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("app nodisplay: %d\n", nodisplay); + printf("app effect image portrait: %s, app effect image landscape : %s\n", portraitimg, landscapeimg); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_is_nodisplay(pkgmgrinfo_appinfo_h handle, bool *nodisplay); +int pkgmgrinfo_appinfo_get_effectimage(pkgmgrinfo_appinfo_h handle, char **portrait_img, char **landscape_img); /** - * @fn int pkgmgrinfo_appinfo_is_multiple(pkgmgrinfo_appinfo_h handle, bool *multiple) - * @brief This API gets the application 'multiple' value from the app ID + * @fn int pkgmgrinfo_appinfo_get_effectimage_type(pkgmgrinfo_appinfo_h handle, char **effectimg_type) + * @brief This API gets the application's effect image type * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * * @param[in] handle pointer to application info handle - * @param[out] multiple pointer to hold package multiple value + * @param[out] effectimg_type contains effect image type * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -3959,37 +3862,36 @@ int pkgmgrinfo_appinfo_is_nodisplay(pkgmgrinfo_appinfo_h handle, bool *nodispla * @see pkgmgrinfo_appinfo_get_appid() * @see pkgmgrinfo_appinfo_is_nodisplay() * @code -static int get_app_multiple(const char *appid) +static int get_app_effectimage_type(const char *appid) { int ret = 0; - bool multiple; - pkgmgrinfo_appinfo_h handle; + char *effectimg_type = NULL; + pkgmgrinfo_appinfo_h handle = NULL; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_is_multiple(handle, &multiple); + ret = pkgmgrinfo_appinfo_get_effectimage_type(handle, &effectimg_type); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("app multiple: %d\n", multiple); + printf("app effect image type: %s\n", effectimg_type); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_is_multiple(pkgmgrinfo_appinfo_h handle, bool *multiple); +int pkgmgrinfo_appinfo_get_effectimage_type(pkgmgrinfo_appinfo_h handle, char **effectimg_type); /** - * @fn int pkgmgrinfo_appinfo_is_indicator_display_allowed(pkgmgrinfo_appinfo_h handle, bool *indicator_disp) - * @brief This API gets the application 'indicatordisplay' value. If true, indicator will be displayed during - * application launching effect. If fales, indicator will be hidden during application launching effect + * @fn int pkgmgrinfo_appinfo_get_submode_mainid(pkgmgrinfo_appinfo_h handle, char **submode_mainid) + * @brief This API gets the submode_mainid of the application * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to application info handle - * @param[out] indicator_disp contains indicator display status for application launching effect + * @param[in] handle pointer to the application info handle. + * @param[out] submode_mainid pointer to hold package name * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -3997,38 +3899,119 @@ int pkgmgrinfo_appinfo_is_multiple(pkgmgrinfo_appinfo_h handle, bool *multiple) * @pre pkgmgrinfo_appinfo_get_appinfo() * @post pkgmgrinfo_appinfo_destroy_appinfo() * @see pkgmgrinfo_appinfo_get_appid() - * @see pkgmgrinfo_appinfo_is_nodisplay() + * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_app_indicator_display(const char *appid) +static int get_app_submode_mainid(const char *appid) { int ret = 0; - bool indicator_disp; - pkgmgrinfo_appinfo_h handle; + char *submode_mainid = NULL; + pkgmgrinfo_appinfo_h handle = NULL; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_is_indicator_display_allowed(handle, &indicator_disp); - if (ret != PMINFO_R_OK){ + ret = pkgmgrinfo_appinfo_get_submode_mainid(handle, &submode_mainid); + if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("app indicator disp : %d\n", indicator_disp); + printf("submode_mainid: %s\n", submode_mainid); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_is_indicator_display_allowed(pkgmgrinfo_appinfo_h handle, bool *indicator_disp); +int pkgmgrinfo_appinfo_get_submode_mainid(pkgmgrinfo_appinfo_h handle, char **submode_mainid); /** - * @fn int pkgmgrinfo_appinfo_is_taskmanage(pkgmgrinfo_appinfo_h handle, bool *taskmanage) - * @brief This API gets the application 'taskmanage' value from the app ID + * @fn int pkgmgrinfo_appinfo_get_datacontrol_info(const char *providerid, const char *type, char **appid, char **access); + * @brief This API gets the datacontrol info * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to application info handle - * @param[out] taskmanage pointer to hold package taskmanage value + * @param[in] providerid pointer to the providerid of dataconltrol. + * @param[in] type pointer to the type of dataconltrol. + * @param[out] appid pointer to hold appid, need to free after using + * @param[out] access pointer to hold access, need to free after using + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @endcode + */ +int pkgmgrinfo_appinfo_get_datacontrol_info(const char *providerid, const char *type, char **appid, char **access); +int pkgmgrinfo_appinfo_usr_get_datacontrol_info(const char *providerid, const char *type, uid_t uid, char **appid, char **access); + +/** + * @fn int pkgmgrinfo_appinfo_get_datacontrol_appid(const char *providerid, char **appid); + * @brief This API gets the appid of datacontrol + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] providerid pointer to the providerid of dataconltrol. + * @param[out] appid pointer to hold appid, need to free after using + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @endcode + */ +int pkgmgrinfo_appinfo_get_datacontrol_appid(const char *providerid, char **appid); +int pkgmgrinfo_appinfo_usr_get_datacontrol_appid(const char *providerid, uid_t uid, char **appid); + +/** + * @fn int pkgmgrinfo_appinfo_get_datacontrol_trusted_info(const char *providerid, char **appid, bool *is_trusted); + * @brief This API gets the information about trusted datacontrol + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] providerid pointer to the providerid of datacontrol. + * @param[out] appid pointer to hold appid, need to free after using + * @param[out] is_trusted pointer to hold whether it provides trusted datacontrol + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @endcode + */ +int pkgmgrinfo_appinfo_get_datacontrol_trusted_info(const char *providerid, + const char *type, char **appid, bool *is_trusted); +int pkgmgrinfo_appinfo_usr_get_datacontrol_trusted_info(const char *providerid, + const char *type, uid_t uid, char **appid, bool *is_trusted); + +/** + * @fn int pkgmgrinfo_appinfo_foreach_datacontrol_privileges(const char *providerid, const char *type, + pkgmgrinfo_pkg_privilege_list_cb privilege_func, void *user_data); + * @brief This API retrieves the privileges and invokes given callback for each privilege. + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] providerid pointer to the providerid of datacontrol. + * @param[in] type pointer to the type of dataconltrol. + * @param[in] privilege_func callback function for list + * @param[in] user_data user data to be passed to callback function + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + */ +int pkgmgrinfo_appinfo_foreach_datacontrol_privileges(const char *providerid, const char *type, + pkgmgrinfo_pkg_privilege_list_cb privilege_func, void *user_data); +int pkgmgrinfo_appinfo_usr_foreach_datacontrol_privileges(const char *providerid, const char *type, + pkgmgrinfo_pkg_privilege_list_cb privilege_func, void *user_data, uid_t uid); + +/** + * @fn int pkgmgrinfo_appinfo_get_alias_appid(pkgmgrinfo_appinfo_h handle, char **alias_appid) + * @brief This API gets the alias_appid of the application + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to the application info handle. + * @param[out] alias_appid pointer to hold app alias_appid * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -4036,38 +4019,37 @@ int pkgmgrinfo_appinfo_is_indicator_display_allowed(pkgmgrinfo_appinfo_h handle, * @pre pkgmgrinfo_appinfo_get_appinfo() * @post pkgmgrinfo_appinfo_destroy_appinfo() * @see pkgmgrinfo_appinfo_get_appid() - * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_app_taskmanage(const char *appid) +static int get_alias_appid(const char *appid) { int ret = 0; - bool taskmanage; - pkgmgrinfo_appinfo_h handle; + char *alias_appid= 0; + pkgmgrinfo_appinfo_h handle = NULL; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_is_taskmanage(handle, &taskmanage); + ret = pkgmgrinfo_appinfo_get_alias_appid(handle, &alias_appid); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("app taskmanage: %d\n", taskmanage); + printf("alias_appid: %s\n", alias_appid); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_is_taskmanage(pkgmgrinfo_appinfo_h handle, bool *taskmanage); +int pkgmgrinfo_appinfo_get_alias_appid(pkgmgrinfo_appinfo_h handle, char **alias_appid); /** - * @fn int pkgmgrinfo_appinfo_is_enabled(pkgmgrinfo_appinfo_h handle, bool *enabled) - * @brief This API gets the application 'taskmanage' value from the app ID + * @fn int pkgmgrinfo_appinfo_get_effective_appid(pkgmgrinfo_appinfo_h handle, char **effective_appid) + * @brief This API gets the effective_appid of the application * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to application info handle - * @param[out] enabled pointer to hold package enabled value + * @param[in] handle pointer to the application info handle. + * @param[out] effective_appid pointer to hold app effective_appid * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -4075,156 +4057,150 @@ int pkgmgrinfo_appinfo_is_taskmanage(pkgmgrinfo_appinfo_h handle, bool *taskman * @pre pkgmgrinfo_appinfo_get_appinfo() * @post pkgmgrinfo_appinfo_destroy_appinfo() * @see pkgmgrinfo_appinfo_get_appid() - * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_app_enabled(const char *appid) +static int get_effective_appid(const char *appid) { int ret = 0; - bool enabled; - pkgmgrinfo_appinfo_h handle; + char *effective_appid= 0; + pkgmgrinfo_appinfo_h handle = NULL; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_is_taskmanage(handle, &enabled); + ret = pkgmgrinfo_appinfo_get_effective_appid(handle, &effective_appid); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("app enabled: %d\n", enabled); + printf("effective_appid: %s\n", effective_appid); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_is_enabled(pkgmgrinfo_appinfo_h handle, bool *enabled); +int pkgmgrinfo_appinfo_get_effective_appid(pkgmgrinfo_appinfo_h handle, char **effective_appid); /** - * @fn int pkgmgrinfo_appinfo_is_onboot(pkgmgrinfo_appinfo_h handle, bool *onboot) - * @brief This API gets the application 'onboot' value from the app ID + * @fn int pkgmgrinfo_appinfo_get_tep_name(pkgmgrinfo_appinfo_h handle, char **tep_name) + * @brief This API gets tep(tizen expansion package) file name associated with the package which contain given application * - * @par This API is for package-manager client application + * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to application info handle - * @param[out] onboot pointer to hold package onboot value + * @param[in] handle pointer to the appinfo handle. + * @param[out] tep_name pointer to hold tep name * @return 0 if success, error code(<0) if fail - * @retval PMINFO_R_OK success - * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_appid() - * @see pkgmgrinfo_appinfo_is_multiple() + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() * @code -static int get_app_onboot(const char *appid) +static int get_tep_name(const char *appid) { int ret = 0; - bool onboot; - pkgmgrinfo_appinfo_h handle; + char *tep_name = NULL; + pkgmgrinfo_appinfo_h handle = NULL; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_is_onboot(handle, &onboot); + ret = pkgmgrinfo_appinfo_get_tep_name(handle, &tep_name); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("app onboot: %d\n", onboot); + printf("TEP name is: %s\n", tep_name); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_is_onboot(pkgmgrinfo_appinfo_h handle, bool *onboot); +int pkgmgrinfo_appinfo_get_tep_name(pkgmgrinfo_appinfo_h handle, char **tep_name); /** - * @fn int pkgmgrinfo_appinfo_is_autorestart(pkgmgrinfo_appinfo_h handle, bool *autorestart) - * @brief This API gets the application 'autorestart' value from the app ID + * @fn int pkgmgrinfo_appinfo_get_zip_mount_file(pkgmgrinfo_appinfo_h handle, char **zip_mount_file) + * @brief This API gets zip mount file name associated with the package which contain given application + * If package is not "mount-installed", zip_mount_file is left as NULL pointer. * - * @par This API is for package-manager client application + * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to application info handle - * @param[out] autorestart pointer to hold package autorestart value + * @param[in] handle pointer to the appinfo handle. + * @param[out] zip_mount_file pointer to hold zip mount file name * @return 0 if success, error code(<0) if fail - * @retval PMINFO_R_OK success - * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_appid() - * @see pkgmgrinfo_appinfo_is_multiple() + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() * @code -static int get_app_autorestart(const char *appid) +static int get_zip_mount_file(const char *appid) { int ret = 0; - bool autorestart; - pkgmgrinfo_appinfo_h handle; + char *zip_mount_file = NULL; + pkgmgrinfo_appinfo_h handle = NULL; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_is_autorestart(handle, &autorestart); + ret = pkgmgrinfo_appinfo_get_zip_mount_file(handle, &zip_mount_file); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("app autorestart: %d\n", autorestart); + printf("Mount file name is: %s\n", zip_mount_file); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_is_autorestart(pkgmgrinfo_appinfo_h handle, bool *autorestart); +int pkgmgrinfo_appinfo_get_zip_mount_file(pkgmgrinfo_appinfo_h handle, char **zip_mount_file); /** - * @fn int pkgmgrinfo_appinfo_is_mainapp(pkgmgrinfo_appinfo_h handle, bool *mainapp) - * @brief This API gets the value for given application is main app or not from handle + * @fn int pkgmgrinfo_appinfo_get_root_path(pkgmgrinfo_appinfo_h handle, char **path) + * @brief This API gets the root path of application * - * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to application info handle - * @param[out] mainapp pointer to hold package mainapp is or not + * @param[in] handle pointer to appinfo handle + * @param[out] path pointer to hold root path of application * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_appid() - * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_app_mainapp(const char *appid) +static int get_root_path(const char *appid) { int ret = 0; - bool mainapp; + char *path = 0; pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_is_mainapp(handle, &mainapp); + + ret = pkgmgrinfo_appinfo_get_root_path(handle, &path); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("mainapp: %d\n", mainapp); + printf("path : %s\n", path); pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; } * @endcode */ -int pkgmgrinfo_appinfo_is_mainapp(pkgmgrinfo_appinfo_h handle, bool *mainapp); - +int pkgmgrinfo_appinfo_get_root_path(pkgmgrinfo_appinfo_h handle, char **root_path); /** - * @fn int pkgmgrinfo_appinfo_is_preload(pkgmgrinfo_appinfo_h handle, bool *preload) - * @brief This API gets the value for given application is preload or not from handle + * @fn int pkgmgrinfo_appinfo_get_api_version(pkgmgrinfo_appinfo_h handle, char **api_version) + * @brief This API gets the application api_version from the application ID * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to application info handle - * @param[out] preload pointer to hold preload is or not + * @param[in] handle pointer to appinfo handle + * @param[out] api_version pointer to hold application api_version * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -4232,38 +4208,37 @@ int pkgmgrinfo_appinfo_is_mainapp(pkgmgrinfo_appinfo_h handle, bool *mainapp); * @pre pkgmgrinfo_appinfo_get_appinfo() * @post pkgmgrinfo_appinfo_destroy_appinfo() * @see pkgmgrinfo_appinfo_get_appid() - * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_app_preload(const char *appid) +static int get_app_api_version(const char *appid) { int ret = 0; - bool preload = 0; + char *api_version = NULL; pkgmgrinfo_appinfo_h handle = NULL; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_is_preload(handle, &preload); + ret = pkgmgrinfo_appinfo_get_api_version(handle, &api_version); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("preload: %d\n", preload); + printf("app api_version: %s\n", api_version); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_is_preload(pkgmgrinfo_appinfo_h handle, bool *preload); +int pkgmgrinfo_appinfo_get_api_version(pkgmgrinfo_appinfo_h handle, char **api_version); /** - * @fn int pkgmgrinfo_appinfo_is_submode(pkgmgrinfo_appinfo_h handle, bool *submode) - * @brief This API gets the value for given application is submode or not from handle + * @fn int pkgmgrinfo_appinfo_get_installed_time(pkgmgrinfo_appinfo_h handle, int *installed_time) + * @brief This API gets the installed_time of the application * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to application info handle - * @param[out] submode pointer to hold submode is or not + * @param[in] handle pointer to the application info handle. + * @param[out] installed_time pointer to hold installed_time * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -4273,36 +4248,36 @@ int pkgmgrinfo_appinfo_is_preload(pkgmgrinfo_appinfo_h handle, bool *preload); * @see pkgmgrinfo_appinfo_get_appid() * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_app_submode(const char *appid) +static int get_app_installed_time(const char *appid) { int ret = 0; - bool submode = 0; + int installed_time = 0; pkgmgrinfo_appinfo_h handle = NULL; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_is_submode(handle, &submode); + ret = pkgmgrinfo_appinfo_get_installed_time(handle, &installed_time); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("submode: %d\n", submode); + printf("installed_time: %d\n", installed_time); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_is_submode(pkgmgrinfo_appinfo_h handle, bool *submode); +int pkgmgrinfo_appinfo_get_installed_time(pkgmgrinfo_appinfo_h handle, int *installed_time); /** - * @fn int int pkgmgrinfo_appinfo_is_process_pool(pkgmgrinfo_appinfo_h handle, bool *process_pool) - * @brief This API gets the value for given application is process_pool or not from handle + * @fn int pkgmgrinfo_appinfo_get_support_mode(pkgmgrinfo_appinfo_h handle, int *support_mode) + * @brief This API gets the support_mode of the application * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to application info handle - * @param[out] process_pool pointer to hold process_pool is or not + * @param[in] handle pointer to the application info handle. + * @param[out] support_mode pointer to hold app support_mode * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -4311,185 +4286,280 @@ int pkgmgrinfo_appinfo_is_submode(pkgmgrinfo_appinfo_h handle, bool *submode); * @post pkgmgrinfo_appinfo_destroy_appinfo() * @see pkgmgrinfo_appinfo_get_appid() * @code -static int get_app_process_pool(const char *appid) +static int get_app_support_mode(const char *appid) { int ret = 0; - bool process_pool = 0; + int support_mode = 0; pkgmgrinfo_appinfo_h handle = NULL; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_is_process_pool(handle, &process_pool); + ret = pkgmgrinfo_appinfo_get_support_mode(handle, &support_mode); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("process_pool: %d\n", process_pool); + printf("support_mode: %s\n", support_mode); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_is_process_pool(pkgmgrinfo_appinfo_h handle, bool *process_pool); +int pkgmgrinfo_appinfo_get_support_mode(pkgmgrinfo_appinfo_h handle, int *support_mode); + /** - * @fn int pkgmgrinfo_appinfo_get_installed_storage_location(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_installed_storage *storage) - * @brief This API gets the installed storage location of the application + * @fn int pkgmgrinfo_appinfo_foreach_category(pkgmgrinfo_appinfo_h handle, + pkgmgrinfo_app_category_list_cb category_func, void *user_data); + * @brief This API gets the list of category for a particular application * - * @par This API is for package-manager client application + * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API - * - * @param[in] handle pointer to the application info handle. - * @param[out] app_type pointer to hold installed storage location + * @param[in] handle pointer to the application info handle. + * @param[in] category_func callback function for list + * @param[in] user_data user data to be passed to callback function * @return 0 if success, error code(<0) if fail - * @retval PMINFO_R_OK success - * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_appid() + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() * @code -static int get_app_installed_location(const char *appid) +int category_func(const char *name, void *user_data) +{ + if (strcmp(name, (char *)user_data) == 0) + return -1; + else + return 0; +} + +static int list_category(const char *appid, char *category) { int ret = 0; - pkgmgrinfo_installed_storage storage; - pkgmgrinfo_appinfo_h handle = NULL; + pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_installed_storage_location(handle, &storage); + ret = pkgmgrinfo_appinfo_foreach_category(handle, category_func, (void *)category); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("Installed storage location : %d\n", storage); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_get_installed_storage_location(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_installed_storage *storage); - +int pkgmgrinfo_appinfo_foreach_category(pkgmgrinfo_appinfo_h handle, + pkgmgrinfo_app_category_list_cb category_func, void *user_data); /** - * @fn int pkgmgrinfo_appinfo_is_category_exist(pkgmgrinfo_appinfo_h handle, const char *category, bool *exist) - * @brief This API checks if the application has the given category + * @fn int pkgmgrinfo_appinfo_foreach_metadata(pkgmgrinfo_appinfo_h handle, + pkgmgrinfo_app_metadata_list_cb metadata_func, void *user_data); + * @brief This API gets the list of metadata for a particular application * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API - * - * @param[in] handle pointer to the application info handle - * @param[in] category category - * @param[out] exist value Gets whether the application has the given category + * @param[in] handle pointer to the application info handle. + * @param[in] metadata_func callback function for list + * @param[in] user_data user data to be passed to callback function * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() * @code -static int is_category_exist(const char *appid, const char *category) +int metadata_func(const char *key, const char *value, void *user_data) +{ + if (strcmp(key, (char *)user_data) == 0) { + printf("Value is %s\n", value); + return -1; + } + else + return 0; +} + +static int list_metadata(const char *appid, char *key) { int ret = 0; pkgmgrinfo_appinfo_h handle; - bool exist = false; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - - ret = pkgmgrinfo_appinfo_is_category_exist(handle, category, &exist); + ret = pkgmgrinfo_appinfo_foreach_metadata(handle, metadata_func, (void *)key); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_is_category_exist(pkgmgrinfo_appinfo_h handle, const char *category, bool *exist); +int pkgmgrinfo_appinfo_foreach_metadata(pkgmgrinfo_appinfo_h handle, + pkgmgrinfo_app_metadata_list_cb metadata_func, void *user_data); /** - * @fn int pkgmgrinfo_appinfo_is_ui_gadget(pkgmgrinfo_appinfo_h handle, bool *ui_gadget) - * @brief This API gets the application 'ui_gadget' value from the app ID + * @fn int pkgmgrinfo_appinfo_foreach_appcontrol_privileges(const char *appid, + * const char *operation, + * pkgmgrinfo_pkg_privilege_list_cb privilege_func, + * void *user_data); + * @brief This API gets the list of privileges for a particular + * appllication's app_control * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API + * @param[in] appid application id + * @param[in] operation operation of appcontrol + * @param[in] privilege_func callback function for list + * @param[in] user_data user data to be passed to callback function + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + */ +int pkgmgrinfo_appinfo_usr_foreach_appcontrol_privileges(const char *appid, + const char *operation, + pkgmgrinfo_pkg_privilege_list_cb privilege_func, + void *user_data, uid_t uid); +int pkgmgrinfo_appinfo_foreach_appcontrol_privileges(const char *appid, + const char *operation, + pkgmgrinfo_pkg_privilege_list_cb privilege_func, + void *user_data); + +/** + * @fn int pkgmgrinfo_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle, + pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data); + * @fn int pkgmgrinfo_usr_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle, + pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data, uid_t uid); + * @brief This API gets the list of app-control for a particular application * - * @param[in] handle pointer to application info handle - * @param[out] ui_gadget pointer to hold package ui_gadget value + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * @param[in] handle pointer to the application info handle. + * @param[in] appcontrol_func callback function for list + * @param[in] user_data user data to be passed to callback function + * @param[in] uid the addressee user id of the instruction * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() * @code -static int get_app_ui_gadget(const char *appid) +int appcontrol_func(pkgmgrinfo_appcontrol_h handle, void *user_data) +{ + int oc = 0; + int i = 0; + char **operation; + pkgmgrinfo_appinfo_get_operation(handle, &oc, &operation); + for (i = 0; i < oc; i++) { + if (strcmp(operation[i], (char *)user_data) == 0) + return -1; + else + return 0; + } +} + +static int check_operation(const char *appid, char *operation) { int ret = 0; - bool ui_gadget; - pkgmgrinfo_appinfo_h handle = NULL; + pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_is_ui_gadget(handle, &ui_gadget); + ret = pkgmgrinfo_appinfo_foreach_appcontrol(handle, appcontrol_func, (void *)operation); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("app ui_gadget: %d\n", ui_gadget); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_is_ui_gadget(pkgmgrinfo_appinfo_h handle, bool *ui_gadget); +int pkgmgrinfo_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle, + pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data); + +int pkgmgrinfo_appinfo_foreach_remote_appcontrol(pkgmgrinfo_appinfo_h handle, + pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data); /** - * @fn int pkgmgrinfo_appinfo_is_support_disable(pkgmgrinfo_appinfo_h handle, bool *support_disable) - * @brief This API gets the application 'support_disable' value from the app ID + * @brief + */ +int pkgmgrinfo_appinfo_foreach_background_category(pkgmgrinfo_appinfo_h handle, + pkgmgrinfo_app_background_category_list_cb category_func, void *user_data); + +/** + * @fn int pkgmgrinfo_appinfo_foreach_splash_screen(pkgmgrinfo_appinfo_h handle, + pkgmgrinfo_app_splash_screen_list_cb splash_screen_func, void *user_data); + * @brief This API gets the list of splashscreen for a particular application + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * @param[in] handle pointer to the application info handle. + * @param[in] splash_screen_func callback function for list + * @param[in] user_data user data to be passed to callback function + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @code + */ +int pkgmgrinfo_appinfo_foreach_splash_screen(pkgmgrinfo_appinfo_h handle, + pkgmgrinfo_app_splash_screen_list_cb splash_screen_func, void *user_data); + +/** + * @fn int pkgmgrinfo_appinfo_is_nodisplay(pkgmgrinfo_appinfo_h handle, bool *nodisplay) + * @brief This API gets the application 'nodisplay' value from the app ID * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * * @param[in] handle pointer to application info handle - * @param[out] support_disable pointer to hold package support_disable value + * @param[out] nodisplay pointer to hold package nodisplay value * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_app_support_disable(const char *appid) +static int get_app_nodisplay(const char *appid) { int ret = 0; - bool support_disable; - pkgmgrinfo_appinfo_h handle = NULL; + bool nodisplay; + pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_is_support_disable(handle, &support_disable); + ret = pkgmgrinfo_appinfo_is_nodisplay(handle, &nodisplay); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("app support_disable: %d\n", support_disable); + printf("app nodisplay: %d\n", nodisplay); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_is_support_disable(pkgmgrinfo_appinfo_h handle, bool *support_disable); +int pkgmgrinfo_appinfo_is_nodisplay(pkgmgrinfo_appinfo_h handle, bool *nodisplay); /** - * @fn int pkgmgrinfo_appinfo_is_removable(pkgmgrinfo_appinfo_h handle, bool *removable) - * @brief This API gets the application 'removable' value from the app ID + * @fn int pkgmgrinfo_appinfo_is_multiple(pkgmgrinfo_appinfo_h handle, bool *multiple) + * @brief This API gets the application 'multiple' value from the app ID * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * * @param[in] handle pointer to application info handle - * @param[out] removable pointer to hold package removable value + * @param[out] multiple pointer to hold package multiple value * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -4497,37 +4567,39 @@ int pkgmgrinfo_appinfo_is_support_disable(pkgmgrinfo_appinfo_h handle, bool *sup * @pre pkgmgrinfo_appinfo_get_appinfo() * @post pkgmgrinfo_appinfo_destroy_appinfo() * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_is_nodisplay() * @code -static int get_app_removable(const char *appid) +static int get_app_multiple(const char *appid) { int ret = 0; - bool removable; - pkgmgrinfo_appinfo_h handle = NULL; + bool multiple; + pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_is_removable(handle, &removable); + ret = pkgmgrinfo_appinfo_is_multiple(handle, &multiple); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("app removable: %d\n", removable); + printf("app multiple: %d\n", multiple); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_is_removable(pkgmgrinfo_appinfo_h handle, bool *removable); +int pkgmgrinfo_appinfo_is_multiple(pkgmgrinfo_appinfo_h handle, bool *multiple); /** - * @fn int pkgmgrinfo_appinfo_is_system(pkgmgrinfo_appinfo_h handle, bool *system) - * @brief This API gets the application 'system' value from the app ID + * @fn int pkgmgrinfo_appinfo_is_indicator_display_allowed(pkgmgrinfo_appinfo_h handle, bool *indicator_disp) + * @brief This API gets the application 'indicatordisplay' value. If true, indicator will be displayed during + * application launching effect. If fales, indicator will be hidden during application launching effect * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * * @param[in] handle pointer to application info handle - * @param[out] system pointer to hold package system value + * @param[out] indicator_disp contains indicator display status for application launching effect * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -4535,74 +4607,77 @@ int pkgmgrinfo_appinfo_is_removable(pkgmgrinfo_appinfo_h handle, bool *removable * @pre pkgmgrinfo_appinfo_get_appinfo() * @post pkgmgrinfo_appinfo_destroy_appinfo() * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_is_nodisplay() * @code -static int get_app_system(const char *appid) +static int get_app_indicator_display(const char *appid) { int ret = 0; - bool system = false; - pkgmgrinfo_appinfo_h handle = NULL; + bool indicator_disp; + pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_is_system(handle, &system); - if (ret != PMINFO_R_OK) { + ret = pkgmgrinfo_appinfo_is_indicator_display_allowed(handle, &indicator_disp); + if (ret != PMINFO_R_OK){ pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("app system: %d\n", system); + printf("app indicator disp : %d\n", indicator_disp); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_is_system(pkgmgrinfo_appinfo_h handle, bool *system); - +int pkgmgrinfo_appinfo_is_indicator_display_allowed(pkgmgrinfo_appinfo_h handle, bool *indicator_disp); /** - * @fn int pkgmgrinfo_appinfo_is_disabled(pkgmgrinfo_appinfo_h handle, bool *disabled) - * @brief This API gets the application 'is_disable' value from the app ID + * @fn int pkgmgrinfo_appinfo_is_taskmanage(pkgmgrinfo_appinfo_h handle, bool *taskmanage) + * @brief This API gets the application 'taskmanage' value from the app ID * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * * @param[in] handle pointer to application info handle - * @param[out] disabled pointer to hold application is_disabled value + * @param[out] taskmanage pointer to hold package taskmanage value * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_app_is_disable(const char *appid) +static int get_app_taskmanage(const char *appid) { int ret = 0; - bool is_disable; - pkgmgrinfo_appinfo_h handle = NULL; + bool taskmanage; + pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_is_disabled(handle, &is_disable); + ret = pkgmgrinfo_appinfo_is_taskmanage(handle, &taskmanage); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("app is_disable: %d\n", is_disable); + printf("app taskmanage: %d\n", taskmanage); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_is_disabled(pkgmgrinfo_appinfo_h handle, bool *disabled); +int pkgmgrinfo_appinfo_is_taskmanage(pkgmgrinfo_appinfo_h handle, bool *taskmanage); /** - * @fn int pkgmgrinfo_appinfo_is_global(pkgmgrinfo_appinfo_h handle, bool *global) - * @brief This API gets whethere the given application is global application or user application + * @fn int pkgmgrinfo_appinfo_is_enabled(pkgmgrinfo_appinfo_h handle, bool *enabled) + * @brief This API gets the application 'taskmanage' value from the app ID * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * * @param[in] handle pointer to application info handle - * @param[in] global pointer to hold application global value + * @param[out] enabled pointer to hold package enabled value * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -4610,1073 +4685,2258 @@ int pkgmgrinfo_appinfo_is_disabled(pkgmgrinfo_appinfo_h handle, bool *disabled); * @pre pkgmgrinfo_appinfo_get_appinfo() * @post pkgmgrinfo_appinfo_destroy_appinfo() * @see pkgmgrinfo_appinfo_get_appid() - static int get_app_is_global(const char *appid) - { - int ret = 0; - bool global; - pkgmgrinfo_appinfo_h handle = NULL; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); - if (ret != PMINFO_R_OK) - return -1; - ret = pkgmgrinfo_appinfo_is_global(handle, &global); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_destroy_appinfo(handle); - return -1; - } - printf("app is_global: %d\n", global); - pkgmgrinfo_appinfo_destroy_appinfo(handle); - return 0; - } - * @endcode - */ -int pkgmgrinfo_appinfo_is_global(pkgmgrinfo_appinfo_h handle, bool *global); - -/** - * @fn int pkgmgrinfo_appinfo_get_splash_screen_display(pkgmgrinfo_appinfo_h handle, bool *splash_screen_display) - * @brief This API gets the application 'splash_screen_display' value from the app ID - * - * @par This API is for package-manager client application - * @par Sync (or) Async : Synchronous API - * - * @param[in] handle pointer to application info handle - * @param[out] splash_screen_display pointer to hold package splash_screen_display value - * @return 0 if success, error code(<0) if fail - * @retval PMINFO_R_OK success - * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error - */ -int pkgmgrinfo_appinfo_get_splash_screen_display(pkgmgrinfo_appinfo_h handle, bool *splash_screen_display); - -/** - * @fn int pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo_h handle) - * @brief This API destroys the application information handle freeing up all the resources - * - * @par This API is for package-manager client application - * @par Sync (or) Async : Synchronous API - * - * @param[in] handle pointer to the application info handle. - * @return 0 if success, error code(<0) if fail - * @retval PMINFO_R_OK success - * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post None - * @see pkgmgrinfo_appinfo_get_pkgid() * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_app_type(const char *appid) +static int get_app_enabled(const char *appid) { int ret = 0; - char *type = NULL; + bool enabled; pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_get_apptype(handle, &type); + ret = pkgmgrinfo_appinfo_is_taskmanage(handle, &enabled); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("apptype: %s\n", type); + printf("app enabled: %d\n", enabled); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo_h handle); +int pkgmgrinfo_appinfo_is_enabled(pkgmgrinfo_appinfo_h handle, bool *enabled); /** - * @fn int pkgmgrinfo_appinfo_filter_create(pkgmgrinfo_appinfo_filter_h *handle) - * @brief This API creates the application information filter handle from db. All filter properties will be ANDed. - The query will search the entire application information collected from the manifest file of all the installed packages + * @fn int pkgmgrinfo_appinfo_is_onboot(pkgmgrinfo_appinfo_h handle, bool *onboot) + * @brief This API gets the application 'onboot' value from the app ID * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[out] handle pointer to the application info filter handle. + * @param[in] handle pointer to application info handle + * @param[out] onboot pointer to hold package onboot value * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre None - * @post pkgmgrinfo_appinfo_filter_destroy() - * @see pkgmgrinfo_appinfo_filter_count() - * @see pkgmgrinfo_appinfo_filter_foreach_appinfo() + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_capp_count() +static int get_app_onboot(const char *appid) { int ret = 0; - int count = 0; - pkgmgrinfo_appinfo_filter_h handle; - ret = pkgmgrinfo_appinfo_filter_create(&handle); + bool onboot; + pkgmgrinfo_appinfo_h handle; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp"); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_filter_destroy(handle); - return -1; - } - ret = pkgmgrinfo_appinfo_filter_count(handle, &count); + ret = pkgmgrinfo_appinfo_is_onboot(handle, &onboot); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_filter_destroy(handle); + pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("No of capp: %d\n", count); - pkgmgrinfo_appinfo_filter_destroy(handle); + printf("app onboot: %d\n", onboot); + pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_filter_create(pkgmgrinfo_appinfo_filter_h *handle); +int pkgmgrinfo_appinfo_is_onboot(pkgmgrinfo_appinfo_h handle, bool *onboot); /** - * @fn int pkgmgrinfo_appinfo_filter_destroy(pkgmgrinfo_appinfo_filter_h handle) - * @brief This API destroys the application information filter handle freeing up all the resources + * @fn int pkgmgrinfo_appinfo_is_autorestart(pkgmgrinfo_appinfo_h handle, bool *autorestart) + * @brief This API gets the application 'autorestart' value from the app ID * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the application info filter handle. + * @param[in] handle pointer to application info handle + * @param[out] autorestart pointer to hold package autorestart value + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_is_multiple() + * @code +static int get_app_autorestart(const char *appid) +{ + int ret = 0; + bool autorestart; + pkgmgrinfo_appinfo_h handle; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_is_autorestart(handle, &autorestart); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + printf("app autorestart: %d\n", autorestart); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_is_autorestart(pkgmgrinfo_appinfo_h handle, bool *autorestart); + +/** + * @fn int pkgmgrinfo_appinfo_is_mainapp(pkgmgrinfo_appinfo_h handle, bool *mainapp) + * @brief This API gets the value for given application is main app or not from handle + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to application info handle + * @param[out] mainapp pointer to hold package mainapp is or not + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_is_multiple() + * @code +static int get_app_mainapp(const char *appid) +{ + int ret = 0; + bool mainapp; + pkgmgrinfo_appinfo_h handle; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_is_mainapp(handle, &mainapp); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + printf("mainapp: %d\n", mainapp); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_is_mainapp(pkgmgrinfo_appinfo_h handle, bool *mainapp); + + +/** + * @fn int pkgmgrinfo_appinfo_is_preload(pkgmgrinfo_appinfo_h handle, bool *preload) + * @brief This API gets the value for given application is preload or not from handle + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to application info handle + * @param[out] preload pointer to hold preload is or not + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_is_multiple() + * @code +static int get_app_preload(const char *appid) +{ + int ret = 0; + bool preload = 0; + pkgmgrinfo_appinfo_h handle = NULL; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_is_preload(handle, &preload); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + printf("preload: %d\n", preload); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_is_preload(pkgmgrinfo_appinfo_h handle, bool *preload); + +/** + * @fn int pkgmgrinfo_appinfo_is_submode(pkgmgrinfo_appinfo_h handle, bool *submode) + * @brief This API gets the value for given application is submode or not from handle + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to application info handle + * @param[out] submode pointer to hold submode is or not + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_is_multiple() + * @code +static int get_app_submode(const char *appid) +{ + int ret = 0; + bool submode = 0; + pkgmgrinfo_appinfo_h handle = NULL; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_is_submode(handle, &submode); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + printf("submode: %d\n", submode); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_is_submode(pkgmgrinfo_appinfo_h handle, bool *submode); + +/** + * @fn int int pkgmgrinfo_appinfo_is_process_pool(pkgmgrinfo_appinfo_h handle, bool *process_pool) + * @brief This API gets the value for given application is process_pool or not from handle + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to application info handle + * @param[out] process_pool pointer to hold process_pool is or not + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() + * @code +static int get_app_process_pool(const char *appid) +{ + int ret = 0; + bool process_pool = 0; + pkgmgrinfo_appinfo_h handle = NULL; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_is_process_pool(handle, &process_pool); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + printf("process_pool: %d\n", process_pool); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_is_process_pool(pkgmgrinfo_appinfo_h handle, bool *process_pool); + +/** + * @fn int pkgmgrinfo_appinfo_get_installed_storage_location(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_installed_storage *storage) + * @brief This API gets the installed storage location of the application + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to the application info handle. + * @param[out] app_type pointer to hold installed storage location + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() + * @code +static int get_app_installed_location(const char *appid) +{ + int ret = 0; + pkgmgrinfo_installed_storage storage; + pkgmgrinfo_appinfo_h handle = NULL; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_get_installed_storage_location(handle, &storage); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + printf("Installed storage location : %d\n", storage); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_get_installed_storage_location(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_installed_storage *storage); + + +/** + * @fn int pkgmgrinfo_appinfo_is_category_exist(pkgmgrinfo_appinfo_h handle, const char *category, bool *exist) + * @brief This API checks if the application has the given category + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to the application info handle + * @param[in] category category + * @param[out] exist value Gets whether the application has the given category + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @code +static int is_category_exist(const char *appid, const char *category) +{ + int ret = 0; + pkgmgrinfo_appinfo_h handle; + bool exist = false; + + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + if (ret != PMINFO_R_OK) + return -1; + + ret = pkgmgrinfo_appinfo_is_category_exist(handle, category, &exist); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_is_category_exist(pkgmgrinfo_appinfo_h handle, const char *category, bool *exist); + +/** + * @fn int pkgmgrinfo_appinfo_is_ui_gadget(pkgmgrinfo_appinfo_h handle, bool *ui_gadget) + * @brief This API gets the application 'ui_gadget' value from the app ID + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to application info handle + * @param[out] ui_gadget pointer to hold package ui_gadget value + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @code +static int get_app_ui_gadget(const char *appid) +{ + int ret = 0; + bool ui_gadget; + pkgmgrinfo_appinfo_h handle = NULL; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_is_ui_gadget(handle, &ui_gadget); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + printf("app ui_gadget: %d\n", ui_gadget); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_is_ui_gadget(pkgmgrinfo_appinfo_h handle, bool *ui_gadget); + +/** + * @fn int pkgmgrinfo_appinfo_is_support_disable(pkgmgrinfo_appinfo_h handle, bool *support_disable) + * @brief This API gets the application 'support_disable' value from the app ID + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to application info handle + * @param[out] support_disable pointer to hold package support_disable value + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @code +static int get_app_support_disable(const char *appid) +{ + int ret = 0; + bool support_disable; + pkgmgrinfo_appinfo_h handle = NULL; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_is_support_disable(handle, &support_disable); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + printf("app support_disable: %d\n", support_disable); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_is_support_disable(pkgmgrinfo_appinfo_h handle, bool *support_disable); + +/** + * @fn int pkgmgrinfo_appinfo_is_removable(pkgmgrinfo_appinfo_h handle, bool *removable) + * @brief This API gets the application 'removable' value from the app ID + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to application info handle + * @param[out] removable pointer to hold package removable value + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() + * @code +static int get_app_removable(const char *appid) +{ + int ret = 0; + bool removable; + pkgmgrinfo_appinfo_h handle = NULL; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_is_removable(handle, &removable); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + printf("app removable: %d\n", removable); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_is_removable(pkgmgrinfo_appinfo_h handle, bool *removable); + +/** + * @fn int pkgmgrinfo_appinfo_is_system(pkgmgrinfo_appinfo_h handle, bool *system) + * @brief This API gets the application 'system' value from the app ID + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to application info handle + * @param[out] system pointer to hold package system value + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() + * @code +static int get_app_system(const char *appid) +{ + int ret = 0; + bool system = false; + pkgmgrinfo_appinfo_h handle = NULL; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_is_system(handle, &system); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + printf("app system: %d\n", system); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_is_system(pkgmgrinfo_appinfo_h handle, bool *system); + + +/** + * @fn int pkgmgrinfo_appinfo_is_disabled(pkgmgrinfo_appinfo_h handle, bool *disabled) + * @brief This API gets the application 'is_disable' value from the app ID + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to application info handle + * @param[out] disabled pointer to hold application is_disabled value + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @code +static int get_app_is_disable(const char *appid) +{ + int ret = 0; + bool is_disable; + pkgmgrinfo_appinfo_h handle = NULL; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_is_disabled(handle, &is_disable); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + printf("app is_disable: %d\n", is_disable); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_is_disabled(pkgmgrinfo_appinfo_h handle, bool *disabled); + +/** + * @fn int pkgmgrinfo_appinfo_is_global(pkgmgrinfo_appinfo_h handle, bool *global) + * @brief This API gets whether the given application is global application or user application + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to application info handle + * @param[in] global pointer to hold application global value + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() + static int get_app_is_global(const char *appid) + { + int ret = 0; + bool global; + pkgmgrinfo_appinfo_h handle = NULL; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_is_global(handle, &global); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + printf("app is_global: %d\n", global); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; + } + * @endcode + */ +int pkgmgrinfo_appinfo_is_global(pkgmgrinfo_appinfo_h handle, bool *global); + +/** + * @fn int pkgmgrinfo_appinfo_get_splash_screen_display(pkgmgrinfo_appinfo_h handle, bool *splash_screen_display) + * @brief This API gets the application 'splash_screen_display' value from the app ID + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to application info handle + * @param[out] splash_screen_display pointer to hold package splash_screen_display value + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + */ +int pkgmgrinfo_appinfo_get_splash_screen_display(pkgmgrinfo_appinfo_h handle, bool *splash_screen_display); + +/** + * @fn int pkgmgrinfo_appinfo_get_setup_appid(pkgmgrinfo_appinfo_h handle, char **setup_appid) + * @brief This API gets the application 'setup_appid' value from the app ID + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to application info handle + * @param[out] setup_appid pointer to hold package setup_appid value + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + */ +int pkgmgrinfo_appinfo_get_setup_appid(pkgmgrinfo_appinfo_h handle, char **setup_appid); + +/** + * @fn int pkgmgrinfo_appinfo_is_support_ambient(pkgmgrinfo_appinfo_h handle, bool *support_ambient) + * @brief This API gets the application 'support_ambient' value from the app ID + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to application info handle + * @param[out] support_ambient pointer to hold package support_ambient value + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + */ +int pkgmgrinfo_appinfo_is_support_ambient(pkgmgrinfo_appinfo_h handle, bool *support_ambient); + +/** + * @fn int pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo_h handle) + * @brief This API destroys the application information handle freeing up all the resources + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to the application info handle. + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post None + * @see pkgmgrinfo_appinfo_get_pkgid() + * @see pkgmgrinfo_appinfo_is_multiple() + * @code +static int get_app_type(const char *appid) +{ + int ret = 0; + char *type = NULL; + pkgmgrinfo_appinfo_h handle; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_get_apptype(handle, &type); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + printf("apptype: %s\n", type); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo_h handle); + +/** + * @fn int pkgmgrinfo_appinfo_filter_create(pkgmgrinfo_appinfo_filter_h *handle) + * @brief This API creates the application information filter handle from db. All filter properties will be ANDed. + The query will search the entire application information collected from the manifest file of all the installed packages + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[out] handle pointer to the application info filter handle. + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre None + * @post pkgmgrinfo_appinfo_filter_destroy() + * @see pkgmgrinfo_appinfo_filter_count() + * @see pkgmgrinfo_appinfo_filter_foreach_appinfo() + * @code +static int get_capp_count() +{ + int ret = 0; + int count = 0; + pkgmgrinfo_appinfo_filter_h handle; + ret = pkgmgrinfo_appinfo_filter_create(&handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp"); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_filter_destroy(handle); + return -1; + } + ret = pkgmgrinfo_appinfo_filter_count(handle, &count); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_filter_destroy(handle); + return -1; + } + printf("No of capp: %d\n", count); + pkgmgrinfo_appinfo_filter_destroy(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_filter_create(pkgmgrinfo_appinfo_filter_h *handle); + +/** + * @fn int pkgmgrinfo_appinfo_filter_destroy(pkgmgrinfo_appinfo_filter_h handle) + * @brief This API destroys the application information filter handle freeing up all the resources + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to the application info filter handle. + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_filter_create() + * @post None + * @see pkgmgrinfo_appinfo_filter_count() + * @see pkgmgrinfo_appinfo_filter_foreach_appinfo() + * @code +static int get_capp_count() +{ + int ret = 0; + int count = 0; + pkgmgrinfo_appinfo_filter_h handle; + ret = pkgmgrinfo_appinfo_filter_create(&handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp"); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_filter_destroy(handle); + return -1; + } + ret = pkgmgrinfo_appinfo_filter_count(handle, &count); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_filter_destroy(handle); + return -1; + } + printf("No of capp: %d\n", count); + pkgmgrinfo_appinfo_filter_destroy(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_filter_destroy(pkgmgrinfo_appinfo_filter_h handle); + +/** + * @fn int pkgmgrinfo_appinfo_filter_add_bool(pkgmgrinfo_appinfo_filter_h handle, const char *property, const bool value) + * @brief This API adds a boolean filter property to the filter handle + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to the application info filter handle. + * @param[in] property boolean property name. + * @param[in] value value corresponding to the property. + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_filter_create() + * @post pkgmgrinfo_appinfo_filter_destroy() + * @see pkgmgrinfo_appinfo_filter_count() + * @see pkgmgrinfo_appinfo_filter_foreach_appinfo() + * @code +static int get_taskmanageable_app_count() +{ + int ret = 0; + int count = 0; + pkgmgrinfo_appinfo_filter_h handle; + ret = pkgmgrinfo_appinfo_filter_create(&handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_filter_add_bool(handle, PMINFO_APPINFO_PROP_APP_TASKMANAGE, 1); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_filter_destroy(handle); + return -1; + } + ret = pkgmgrinfo_appinfo_filter_count(handle, &count); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_filter_destroy(handle); + return -1; + } + printf("No of taskmanageable apps: %d\n", count); + pkgmgrinfo_appinfo_filter_destroy(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_filter_add_bool(pkgmgrinfo_appinfo_filter_h handle, + const char *property, const bool value); + +/** + * @fn int pkgmgrinfo_appinfo_filter_add_int(pkgmgrinfo_appinfo_filter_h handle, const char *property, const int value) + * @brief This API adds an integer filter property to the filter handle + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to the application info filter handle. + * @param[in] property integer property name. + * @param[in] value value corresponding to the property. + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_filter_create() + * @post pkgmgrinfo_appinfo_filter_destroy() + * @see pkgmgrinfo_appinfo_filter_count() + * @see pkgmgrinfo_appinfo_filter_foreach_appinfo() + * @code +static int get_taskmanageable_app_count() +{ + int ret = 0; + int count = 0; + pkgmgrinfo_appinfo_filter_h handle; + ret = pkgmgrinfo_appinfo_filter_create(&handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_filter_add_bool(handle, PMINFO_APPINFO_PROP_APP_XXX, 10); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_filter_destroy(handle); + return -1; + } + ret = pkgmgrinfo_appinfo_filter_count(handle, &count); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_filter_destroy(handle); + return -1; + } + printf("No of apps: %d\n", count); + pkgmgrinfo_appinfo_filter_destroy(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_filter_add_int(pkgmgrinfo_appinfo_filter_h handle, + const char *property, const int value); + +/** + * @fn int pkgmgrinfo_appinfo_filter_add_string(pkgmgrinfo_appinfo_filter_h handle, const char *property, const char *value) + * @brief This API adds a string filter property to the filter handle + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to the application info filter handle. + * @param[in] property string property name. + * @param[in] value value corresponding to the property. + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_filter_create() + * @post pkgmgrinfo_appinfo_filter_destroy() + * @see pkgmgrinfo_appinfo_filter_count() + * @see pkgmgrinfo_appinfo_filter_foreach_appinfo() + * @code +static int get_capp_count() +{ + int ret = 0; + int count = 0; + pkgmgrinfo_appinfo_filter_h handle; + ret = pkgmgrinfo_appinfo_filter_create(&handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp"); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_filter_destroy(handle); + return -1; + } + ret = pkgmgrinfo_appinfo_filter_count(handle, &count); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_filter_destroy(handle); + return -1; + } + printf("No of capp: %d\n", count); + pkgmgrinfo_appinfo_filter_destroy(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_filter_add_string(pkgmgrinfo_appinfo_filter_h handle, + const char *property, const char *value); + +/** + * @fn int pkgmgrinfo_appinfo_filter_foreach_appinfo(pkgmgrinfo_appinfo_filter_h handle, pkgmgrinfo_app_list_cb app_cb, void *user_data) + * @brief This API executes the user supplied callback function for each application that satisfy the filter conditions + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to the application info filter handle. + * @param[in] app_cb callback function. + * @param[in] user_data user data to be passed to the callback function + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_filter_create() + * @post pkgmgrinfo_appinfo_filter_destroy() + * @see pkgmgrinfo_appinfo_filter_count() + * @code +int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data) +{ + char *appid = NULL; + pkgmgrinfo_appinfo_get_appid(handle, &appid); + printf("appid : %s\n", appid); + return 0; +} + +static int get_capp_list() +{ + int ret = 0; + pkgmgrinfo_appinfo_filter_h handle; + ret = pkgmgrinfo_appinfo_filter_create(&handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp"); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_filter_destroy(handle); + return -1; + } + ret = pkgmgrinfo_appinfo_filter_foreach_appinfo(handle, app_list_cb, NULL); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_filter_destroy(handle); + return -1; + } + pkgmgrinfo_appinfo_filter_destroy(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_filter_foreach_appinfo(pkgmgrinfo_appinfo_filter_h handle, + pkgmgrinfo_app_list_cb app_cb, void *user_data); +int pkgmgrinfo_appinfo_usr_filter_foreach_appinfo(pkgmgrinfo_appinfo_filter_h handle, + pkgmgrinfo_app_list_cb app_cb, void *user_data, uid_t uid); + +/** + * @fn int pkgmgrinfo_appinfo_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count) + * @fn int pkgmgrinfo_appinfo_usr_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count, uid_t uid) + * @brief This API counts the application that satisfy the filter conditions + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to the application info filter handle. + * @param[in] count pointer to store count value + * @param[in] uid the addressee user id of the instruction * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error * @pre pkgmgrinfo_appinfo_filter_create() + * @post pkgmgrinfo_appinfo_filter_destroy() + * @see pkgmgrinfo_appinfo_filter_foreach_appinfo() + * @code +static int get_capp_count() +{ + int ret = 0; + int count = 0; + pkgmgrinfo_appinfo_filter_h handle; + ret = pkgmgrinfo_appinfo_filter_create(&handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp"); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_filter_destroy(handle); + return -1; + } + ret = pkgmgrinfo_appinfo_filter_count(handle, &count); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_filter_destroy(handle); + return -1; + } + printf("No of capp: %d\n", count); + pkgmgrinfo_appinfo_filter_destroy(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count); +int pkgmgrinfo_appinfo_usr_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count, uid_t uid); +/** + * @fn int pkgmgrinfo_appinfo_metadata_filter_create(pkgmgrinfo_appinfo_metadata_filter_h *handle) + * @brief This API creates the application's metadata information filter handle from db. + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[out] handle pointer to the application metadata info filter handle. + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre None + * @post pkgmgrinfo_appinfo_metadata_filter_destroy() + * @see pkgmgrinfo_appinfo_metadata_filter_foreach() + * @code +int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data) +{ + char *appid = NULL; + pkgmgrinfo_appinfo_get_appid(handle, &appid); + printf("appid : %s\n", appid); + return 0; +} + +static int get_app_list(const char *mkey, const char *mvalue) +{ + int ret = 0; + pkgmgrinfo_appinfo_metadata_filter_h handle; + ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + return -1; + } + ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + return -1; + } + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_metadata_filter_create(pkgmgrinfo_appinfo_metadata_filter_h *handle); + +/** + * @fn int pkgmgrinfo_appinfo_metadata_filter_destroy(pkgmgrinfo_appinfo_metadata_filter_h handle) + * @brief This API destroys the application's metadata information filter handle. + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to the application metadata info filter handle. + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_metadata_filter_create() * @post None - * @see pkgmgrinfo_appinfo_filter_count() - * @see pkgmgrinfo_appinfo_filter_foreach_appinfo() + * @see pkgmgrinfo_appinfo_metadata_filter_foreach() + * @code +int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data) +{ + char *appid = NULL; + pkgmgrinfo_appinfo_get_appid(handle, &appid); + printf("appid : %s\n", appid); + return 0; +} + +static int get_app_list(const char *mkey, const char *mvalue) +{ + int ret = 0; + pkgmgrinfo_appinfo_metadata_filter_h handle; + ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + return -1; + } + ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + return -1; + } + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_metadata_filter_destroy(pkgmgrinfo_appinfo_metadata_filter_h handle); + +/** + * @fn int pkgmgrinfo_appinfo_metadata_filter_add(pkgmgrinfo_appinfo_metadata_filter_h handle, const char *key, const char *value) + * @brief This API adds filter condition for the query API. The query will search the entire application metadata information collected from + * the manifest file of all the installed packages. You can specify value as NULL to search based on key only. + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to the application metadata info filter handle. + * @param[in] key pointer to metadata key + * @param[in] value pointer to metadata value + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_metadata_filter_create() + * @post pkgmgrinfo_appinfo_metadata_filter_foreach(), pkgmgrinfo_appinfo_metadata_filter_destroy() + * @see pkgmgrinfo_appinfo_metadata_filter_foreach() + * @code +int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data) +{ + char *appid = NULL; + pkgmgrinfo_appinfo_get_appid(handle, &appid); + printf("appid : %s\n", appid); + return 0; +} + +static int get_app_list(const char *mkey, const char *mvalue) +{ + int ret = 0; + pkgmgrinfo_appinfo_metadata_filter_h handle; + ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + return -1; + } + ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + return -1; + } + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_metadata_filter_add(pkgmgrinfo_appinfo_metadata_filter_h handle, + const char *key, const char *value); + +/** + * @fn int pkgmgrinfo_appinfo_metadata_filter_foreach(pkgmgrinfo_appinfo_metadata_filter_h handle, pkgmgrinfo_app_list_cb app_cb, void *user_data) + * @fn int pkgmgrinfo_appinfo_usr_metadata_filter_foreach(pkgmgrinfo_appinfo_metadata_filter_h handle, pkgmgrinfo_app_list_cb app_cb, void *user_data, uid_t uid) + * @brief This API executes the filter query. The query will search the entire application metadata information collected from + * the manifest file of all the installed packages. For each application returned by the query, the callback will be called. If callback returns + * negative value, no more callbacks will be called and API will return. + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to the application metadata info filter handle. + * @param[in] app_cb function pointer to callback + * @param[in] user_data pointer to user data + * @param[in] uid the addressee user id of the instruction + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_metadata_filter_create() + * @post pkgmgrinfo_appinfo_metadata_filter_destroy() + * @code +int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data) +{ + char *appid = NULL; + pkgmgrinfo_appinfo_get_appid(handle, &appid); + printf("appid : %s\n", appid); + return 0; +} + +static int get_app_list(const char *mkey, const char *mvalue) +{ + int ret = 0; + pkgmgrinfo_appinfo_metadata_filter_h handle; + ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + return -1; + } + ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + return -1; + } + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_metadata_filter_foreach(pkgmgrinfo_appinfo_metadata_filter_h handle, + pkgmgrinfo_app_list_cb app_cb, void *user_data); +int pkgmgrinfo_appinfo_usr_metadata_filter_foreach(pkgmgrinfo_appinfo_metadata_filter_h handle, + pkgmgrinfo_app_list_cb app_cb, void *user_data, uid_t uid); + +/** + * @fn int pkgmgrinfo_appinfo_foreach_appcontrol_v2(pkgmgrinfo_appinfo_h handle, + pkgmgrinfo_app_control_list_cb_v2 appcontrol_func, void *user_data); + * @fn int pkgmgrinfo_appinfo_foreach_remote_appcontrol_v2(pkgmgrinfo_appinfo_h handle, + pkgmgrinfo_app_control_list_cb_v2 appcontrol_func, void *user_data); + * @brief This API gets the list of app-control for a particular application + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * @param[in] handle pointer to the application info handle. + * @param[in] appcontrol_func callback function for list + * @param[in] user_data user data to be passed to callback function + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + */ +int pkgmgrinfo_appinfo_foreach_appcontrol_v2(pkgmgrinfo_appinfo_h handle, + pkgmgrinfo_app_control_list_cb_v2 appcontrol_func, + void *user_data); +int pkgmgrinfo_appinfo_foreach_remote_appcontrol_v2(pkgmgrinfo_appinfo_h handle, + pkgmgrinfo_app_control_list_cb_v2 appcontrol_func, + void *user_data); +/** + * @fn int pkgmgrinfo_pkginfo_create_certinfo(pkgmgrinfo_certinfo_h *handle) + * @brief This API creates the package cert information handle to get data from db. + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[out] handle pointer to the package cert handle. + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre None + * @post pkgmgrinfo_pkginfo_destroy_certinfo() + * @see pkgmgrinfo_pkginfo_get_cert_value() + * @see pkgmgrinfo_pkginfo_load_certinfo() + * @code +static int get_cert_info(const char *pkgid) +{ + int ret = 0; + pkgmgrinfo_certinfo_h handle; + char *auth_cert = NULL; + ret = pkgmgrinfo_pkginfo_create_certinfo(&handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_destroy_certinfo(handle); + return -1; + } + ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_destroy_certinfo(handle); + return -1; + } + printf("Author root certificate: %s\n", auth_root); + pkgmgrinfo_pkginfo_destroy_certinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_pkginfo_create_certinfo(pkgmgrinfo_certinfo_h *handle); + +/** + * @fn int pkgmgrinfo_pkginfo_load_certinfo(const char *pkgid, pkgmgrinfo_certinfo_h handle) + * @brief This API loads the package cert information handle with data from db. + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] pkgid pointer to the package ID. + * @param[in] handle pointer to the package cert handle. + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_pkginfo_create_certinfo() + * @post pkgmgrinfo_pkginfo_destroy_certinfo() + * @see pkgmgrinfo_pkginfo_get_cert_value() + * @code +static int get_cert_info(const char *pkgid) +{ + int ret = 0; + pkgmgrinfo_certinfo_h handle; + char *auth_cert = NULL; + ret = pkgmgrinfo_pkginfo_create_certinfo(&handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_destroy_certinfo(handle); + return -1; + } + ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_destroy_certinfo(handle); + return -1; + } + printf("Author root certificate: %s\n", auth_root); + pkgmgrinfo_pkginfo_destroy_certinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_pkginfo_load_certinfo(const char *pkgid, pkgmgrinfo_certinfo_h handle, uid_t uid); + +/** + * @fn int pkgmgrinfo_pkginfo_get_cert_value(pkgmgrinfo_certinfo_h handle, pkgmgrinfo_cert_type cert_type, const char **cert_value) + * @brief This API gets the package cert information from the handle + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to the package cert handle. + * @param[in] cert_type certificate type + * @param[out] cert_value pointer to hold certificate value + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_pkginfo_create_certinfo() + * @post pkgmgrinfo_pkginfo_destroy_certinfo() + * @see pkgmgrinfo_pkginfo_load_certinfo() * @code -static int get_capp_count() +static int get_cert_info(const char *pkgid) { int ret = 0; - int count = 0; - pkgmgrinfo_appinfo_filter_h handle; - ret = pkgmgrinfo_appinfo_filter_create(&handle); + pkgmgrinfo_certinfo_h handle; + char *auth_cert = NULL; + ret = pkgmgrinfo_pkginfo_create_certinfo(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp"); + ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_filter_destroy(handle); + pkgmgrinfo_pkginfo_destroy_certinfo(handle); return -1; } - ret = pkgmgrinfo_appinfo_filter_count(handle, &count); + ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_filter_destroy(handle); + pkgmgrinfo_pkginfo_destroy_certinfo(handle); return -1; } - printf("No of capp: %d\n", count); - pkgmgrinfo_appinfo_filter_destroy(handle); + printf("Author root certificate: %s\n", auth_root); + pkgmgrinfo_pkginfo_destroy_certinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_filter_destroy(pkgmgrinfo_appinfo_filter_h handle); +int pkgmgrinfo_pkginfo_get_cert_value(pkgmgrinfo_certinfo_h handle, pkgmgrinfo_cert_type cert_type, const char **cert_value); /** - * @fn int pkgmgrinfo_appinfo_filter_add_bool(pkgmgrinfo_appinfo_filter_h handle, const char *property, const bool value) - * @brief This API adds a boolean filter property to the filter handle + * @fn int pkgmgrinfo_pkginfo_destroy_certinfo(pkgmgrinfo_certinfo_h handle) + * @brief This API destroys the package cert information handle freeing up all the resources * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the application info filter handle. - * @param[in] property boolean property name. - * @param[in] value value corresponding to the property. + * @param[in] handle pointer to the package cert handle. * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_filter_create() - * @post pkgmgrinfo_appinfo_filter_destroy() - * @see pkgmgrinfo_appinfo_filter_count() - * @see pkgmgrinfo_appinfo_filter_foreach_appinfo() + * @pre pkgmgrinfo_pkginfo_create_certinfo() + * @post None + * @see pkgmgrinfo_pkginfo_load_certinfo() * @code -static int get_taskmanageable_app_count() +static int get_cert_info(const char *pkgid) { int ret = 0; - int count = 0; - pkgmgrinfo_appinfo_filter_h handle; - ret = pkgmgrinfo_appinfo_filter_create(&handle); + pkgmgrinfo_certinfo_h handle; + char *auth_cert = NULL; + ret = pkgmgrinfo_pkginfo_create_certinfo(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_filter_add_bool(handle, PMINFO_APPINFO_PROP_APP_TASKMANAGE, 1); + ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_filter_destroy(handle); + pkgmgrinfo_pkginfo_destroy_certinfo(handle); return -1; } - ret = pkgmgrinfo_appinfo_filter_count(handle, &count); + ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_filter_destroy(handle); + pkgmgrinfo_pkginfo_destroy_certinfo(handle); return -1; } - printf("No of taskmanageable apps: %d\n", count); - pkgmgrinfo_appinfo_filter_destroy(handle); + printf("Author root certificate: %s\n", auth_root); + pkgmgrinfo_pkginfo_destroy_certinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_filter_add_bool(pkgmgrinfo_appinfo_filter_h handle, - const char *property, const bool value); +int pkgmgrinfo_pkginfo_destroy_certinfo(pkgmgrinfo_certinfo_h handle); /** - * @fn int pkgmgrinfo_appinfo_filter_add_int(pkgmgrinfo_appinfo_filter_h handle, const char *property, const int value) - * @brief This API adds an integer filter property to the filter handle + * @fn int pkgmgrinfo_delete_certinfo(const char *pkgid) + * @brief This API deletes the package cert information from DB * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the application info filter handle. - * @param[in] property integer property name. - * @param[in] value value corresponding to the property. + * @param[in] pkgid pointer to the package ID. * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_filter_create() - * @post pkgmgrinfo_appinfo_filter_destroy() - * @see pkgmgrinfo_appinfo_filter_count() - * @see pkgmgrinfo_appinfo_filter_foreach_appinfo() + * @pre None + * @post None * @code -static int get_taskmanageable_app_count() +static int delete_cert_info(const char *pkgid) { int ret = 0; - int count = 0; - pkgmgrinfo_appinfo_filter_h handle; - ret = pkgmgrinfo_appinfo_filter_create(&handle); + ret = pkgmgrinfo_delete_certinfo(pkgid); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_filter_add_bool(handle, PMINFO_APPINFO_PROP_APP_XXX, 10); + return 0; +} + * @endcode + */ +int pkgmgrinfo_delete_certinfo(const char *pkgid); +int pkgmgrinfo_delete_usr_certinfo(const char *pkgid, uid_t uid); + +/** + * @fn int pkgmgrinfo_create_certinfo_set_handle(pkgmgrinfo_instcertinfo_h *handle) + * @brief This API creates the package cert information handle to set data in db. + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[out] handle pointer to the package cert handle. + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre None + * @post pkgmgrinfo_destroy_certinfo_set_handle() + * @see pkgmgrinfo_set_cert_value() + * @see pkgmgrinfo_save_certinfo() + * @code +static int set_cert_in_db(const char *pkgid) +{ + int ret = 0; + pkgmgrinfo_instcertinfo_h handle; + ret = pkgmgrinfo_create_certinfo_set_handle(&handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_set_cert_value(handle, PMINFO_SET_AUTHOR_ROOT_CERT, "author root certificate"); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_filter_destroy(handle); + pkgmgrinfo_destroy_certinfo_set_handle(handle); return -1; } - ret = pkgmgrinfo_appinfo_filter_count(handle, &count); + ret = pkgmgrinfo_save_certinfo(pkgid, handle); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_filter_destroy(handle); + pkgmgrinfo_destroy_certinfo_set_handle(handle); return -1; } - printf("No of apps: %d\n", count); - pkgmgrinfo_appinfo_filter_destroy(handle); + pkgmgrinfo_destroy_certinfo_set_handle(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_filter_add_int(pkgmgrinfo_appinfo_filter_h handle, - const char *property, const int value); +int pkgmgrinfo_create_certinfo_set_handle(pkgmgrinfo_instcertinfo_h *handle); /** - * @fn int pkgmgrinfo_appinfo_filter_add_string(pkgmgrinfo_appinfo_filter_h handle, const char *property, const char *value) - * @brief This API adds a string filter property to the filter handle + * @fn int pkgmgrinfo_set_cert_value(pkgmgrinfo_instcertinfo_h handle, pkgmgrinfo_instcert_type cert_type, char *cert_value) + * @brief This API sets the package cert information in the handle. * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the application info filter handle. - * @param[in] property string property name. - * @param[in] value value corresponding to the property. + * @param[in] handle pointer to the package cert handle. + * @param[in] cert_type certificate type. + * @param[in] cert_value certificate value. * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_filter_create() - * @post pkgmgrinfo_appinfo_filter_destroy() - * @see pkgmgrinfo_appinfo_filter_count() - * @see pkgmgrinfo_appinfo_filter_foreach_appinfo() + * @pre pkgmgrinfo_create_certinfo_set_handle() + * @post pkgmgrinfo_destroy_certinfo_set_handle() + * @see pkgmgrinfo_save_certinfo() * @code -static int get_capp_count() +static int set_cert_in_db(const char *pkgid) { int ret = 0; - int count = 0; - pkgmgrinfo_appinfo_filter_h handle; - ret = pkgmgrinfo_appinfo_filter_create(&handle); + pkgmgrinfo_instcertinfo_h handle; + ret = pkgmgrinfo_create_certinfo_set_handle(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp"); + ret = pkgmgrinfo_set_cert_value(handle, PMINFO_SET_AUTHOR_ROOT_CERT, "author root certificate"); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_filter_destroy(handle); + pkgmgrinfo_destroy_certinfo_set_handle(handle); return -1; } - ret = pkgmgrinfo_appinfo_filter_count(handle, &count); + ret = pkgmgrinfo_save_certinfo(pkgid, handle); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_filter_destroy(handle); + pkgmgrinfo_destroy_certinfo_set_handle(handle); return -1; } - printf("No of capp: %d\n", count); - pkgmgrinfo_appinfo_filter_destroy(handle); + pkgmgrinfo_destroy_certinfo_set_handle(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_filter_add_string(pkgmgrinfo_appinfo_filter_h handle, - const char *property, const char *value); +int pkgmgrinfo_set_cert_value(pkgmgrinfo_instcertinfo_h handle, pkgmgrinfo_instcert_type cert_type, char *cert_value); /** - * @fn int pkgmgrinfo_appinfo_filter_foreach_appinfo(pkgmgrinfo_appinfo_filter_h handle, pkgmgrinfo_app_list_cb app_cb, void *user_data) - * @brief This API executes the user supplied callback function for each application that satisfy the filter conditions + * @fn int pkgmgrinfo_save_certinfo(const char *pkgid, pkgmgrinfo_instcertinfo_h handle) + * @brief This API saves the package cert information in the DB. * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the application info filter handle. - * @param[in] app_cb callback function. - * @param[in] user_data user data to be passed to the callback function + * @param[in] pkgid pointer to the package ID. + * @param[in] handle pointer to the package cert handle. * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_filter_create() - * @post pkgmgrinfo_appinfo_filter_destroy() - * @see pkgmgrinfo_appinfo_filter_count() + * @pre pkgmgrinfo_create_certinfo_set_handle() + * @post pkgmgrinfo_destroy_certinfo_set_handle() + * @see pkgmgrinfo_save_certinfo() * @code -int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data) -{ - char *appid = NULL; - pkgmgrinfo_appinfo_get_appid(handle, &appid); - printf("appid : %s\n", appid); - return 0; -} - -static int get_capp_list() +static int set_cert_in_db(const char *pkgid) { int ret = 0; - pkgmgrinfo_appinfo_filter_h handle; - ret = pkgmgrinfo_appinfo_filter_create(&handle); + pkgmgrinfo_instcertinfo_h handle; + ret = pkgmgrinfo_create_certinfo_set_handle(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp"); + ret = pkgmgrinfo_set_cert_value(handle, PMINFO_SET_AUTHOR_ROOT_CERT, "author root certificate"); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_filter_destroy(handle); + pkgmgrinfo_destroy_certinfo_set_handle(handle); return -1; } - ret = pkgmgrinfo_appinfo_filter_foreach_appinfo(handle, app_list_cb, NULL); + ret = pkgmgrinfo_save_certinfo(pkgid, handle); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_filter_destroy(handle); + pkgmgrinfo_destroy_certinfo_set_handle(handle); return -1; } - pkgmgrinfo_appinfo_filter_destroy(handle); + pkgmgrinfo_destroy_certinfo_set_handle(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_filter_foreach_appinfo(pkgmgrinfo_appinfo_filter_h handle, - pkgmgrinfo_app_list_cb app_cb, void *user_data); -int pkgmgrinfo_appinfo_usr_filter_foreach_appinfo(pkgmgrinfo_appinfo_filter_h handle, - pkgmgrinfo_app_list_cb app_cb, void *user_data, uid_t uid); +int pkgmgrinfo_save_certinfo(const char *pkgid, pkgmgrinfo_instcertinfo_h handle, uid_t uid); /** - * @fn int pkgmgrinfo_appinfo_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count) - * @fn int pkgmgrinfo_appinfo_usr_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count, uid_t uid) - * @brief This API counts the application that satisfy the filter conditions + * @fn int pkgmgrinfo_destroy_certinfo_set_handle(pkgmgrinfo_instcertinfo_h handle) + * @brief This API destroys the package cert information handle freeing up all the resources. * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the application info filter handle. - * @param[in] count pointer to store count value - * @param[in] uid the addressee user id of the instruction + * @param[in] handle pointer to the package cert handle. * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_filter_create() - * @post pkgmgrinfo_appinfo_filter_destroy() - * @see pkgmgrinfo_appinfo_filter_foreach_appinfo() + * @pre pkgmgrinfo_create_certinfo_set_handle() + * @post None + * @see pkgmgrinfo_save_certinfo() * @code -static int get_capp_count() +static int set_cert_in_db(const char *pkgid) { int ret = 0; - int count = 0; - pkgmgrinfo_appinfo_filter_h handle; - ret = pkgmgrinfo_appinfo_filter_create(&handle); + pkgmgrinfo_instcertinfo_h handle; + ret = pkgmgrinfo_create_certinfo_set_handle(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp"); + ret = pkgmgrinfo_set_cert_value(handle, PMINFO_SET_AUTHOR_ROOT_CERT, "author root certificate"); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_filter_destroy(handle); + pkgmgrinfo_destroy_certinfo_set_handle(handle); return -1; } - ret = pkgmgrinfo_appinfo_filter_count(handle, &count); + ret = pkgmgrinfo_save_certinfo(pkgid, handle); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_filter_destroy(handle); + pkgmgrinfo_destroy_certinfo_set_handle(handle); return -1; } - printf("No of capp: %d\n", count); - pkgmgrinfo_appinfo_filter_destroy(handle); + pkgmgrinfo_destroy_certinfo_set_handle(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count); -int pkgmgrinfo_appinfo_usr_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count, uid_t uid); +int pkgmgrinfo_destroy_certinfo_set_handle(pkgmgrinfo_instcertinfo_h handle); + /** - * @fn int pkgmgrinfo_appinfo_metadata_filter_create(pkgmgrinfo_appinfo_metadata_filter_h *handle) - * @brief This API creates the application's metadata information filter handle from db. + * @fn int pkgmgrinfo_datacontrol_get_info(const char *providerid, const char * type, char **appid, char **access) + * @brief This API gets the datacontrol info * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[out] handle pointer to the application metadata info filter handle. + * @param[in] providerid pointer to the providerid of dataconltrol. + * @param[in] type pointer to the type of dataconltrol. + * @param[out] appid pointer to hold appid, need to free after using + * @param[out] access pointer to hold access, need to free after using * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre None - * @post pkgmgrinfo_appinfo_metadata_filter_destroy() - * @see pkgmgrinfo_appinfo_metadata_filter_foreach() - * @code -int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data) -{ - char *appid = NULL; - pkgmgrinfo_appinfo_get_appid(handle, &appid); - printf("appid : %s\n", appid); - return 0; -} + * @endcode + */ +int pkgmgrinfo_datacontrol_get_info(const char *providerid, const char * type, char **appid, char **access); -static int get_app_list(const char *mkey, const char *mvalue) +/** + * @fn int pkgmgrinfo_appinfo_is_guestmode_appstatus(pkgmgrinfo_appinfo_h handle, bool *status) + * @brief This API gets the application 'guest mode visibility' value from the DB + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to application info handle + * @param[out] status pointer to hold app guest mode visibility value + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_is_multiple() + * @code +static int get_app_guestmode_visibility(const char *appid) { int ret = 0; - pkgmgrinfo_appinfo_metadata_filter_h handle; - ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle); + bool status; + pkgmgrinfo_appinfo_h handle; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue); + ret = pkgmgrinfo_appinfo_is_guestmode_visibility(handle, &status); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL); + printf("app guest mode visibility: %d\n", status); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_is_guestmode_visibility(pkgmgrinfo_appinfo_h handle, bool *status); + +/** +* @fn int pkgmgrinfo_pkginfo_set_installed_storage(const char *pkgid, INSTALL_LOCATION location) +* @brief This API sets the package 'installed_storage' value in db +* +* @par This API is for package-manager client application +* @par Sync (or) Async : Synchronous API +* +* @param[in] pkgid pointer to the package ID. +* @param[in] location package install location +* @param[in] external_pkg_path image path if pkg has installed at external storage +* @return 0 if success, error code(<0) if fail +* @retval PMINFO_R_OK success +* @retval PMINFO_R_EINVAL invalid argument +* @retval PMINFO_R_ERROR internal error +* @code +static int set_app_installed_storage(const char *appid, INSTALL_LOCATION location) +{ + int ret = 0; + + ret = pkgmgrinfo_pkginfo_set_installed_storage(handle, INSTALL_EXTERNAL); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_metadata_filter_destroy(handle); return -1; } - pkgmgrinfo_appinfo_metadata_filter_destroy(handle); return 0; } - * @endcode - */ -int pkgmgrinfo_appinfo_metadata_filter_create(pkgmgrinfo_appinfo_metadata_filter_h *handle); +* @endcode +*/ +int pkgmgrinfo_pkginfo_set_installed_storage(const char *pkgid, INSTALL_LOCATION location, const char *external_pkg_path); +int pkgmgrinfo_pkginfo_set_usr_installed_storage(const char *pkgid, INSTALL_LOCATION location, const char *external_pkg_path, uid_t uid); + +/* version compare */ +int pkgmgrinfo_compare_package_version(const char *current_version, + const char *target_version, pkgmgrinfo_version_compare_type *res); /** - * @fn int pkgmgrinfo_appinfo_metadata_filter_destroy(pkgmgrinfo_appinfo_metadata_filter_h handle) - * @brief This API destroys the application's metadata information filter handle. + * @fn int pkgmgrinfo_pkginfo_foreach_dependency(pkgmgrinfo_pkginfo_h handle, + pkgmgrinfo_pkg_dependency_list_cb dependency_cb, + void *user_data); + * @brief This API gets the list of dependency of a particular package * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API - * - * @param[in] handle pointer to the application metadata info filter handle. + * @param[in] handle pointer to the package info handle. + * @param[in] dependency_cb callback function for list + * @param[in] user_data user data to be passed to callback function * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_metadata_filter_create() - * @post None - * @see pkgmgrinfo_appinfo_metadata_filter_foreach() + * @pre pkgmgrinfo_pkginfo_get_pkginfo() + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() * @code -int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data) +int dependency_cb(const char *from const char *to, const char *type, + const char *required_version,void *user_data) { - char *appid = NULL; - pkgmgrinfo_appinfo_get_appid(handle, &appid); - printf("appid : %s\n", appid); + printf("this package %s %s", type, to); + if (required_version) + printf("required version : %s", required_version); return 0; } -static int get_app_list(const char *mkey, const char *mvalue) +static int list_dependency(const char *package) { int ret = 0; - pkgmgrinfo_appinfo_metadata_filter_h handle; - ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle); + pkgmgrinfo_pkginfo_h handle; + ret = pkgmgrinfo_pkginfo_get_pkginfo(package, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_metadata_filter_destroy(handle); - return -1; - } - ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL); + ret = pkgmgrinfo_pkginfo_foreach_dependency(handle, dependency_cb, NULL); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_metadata_filter_destroy(pkgmgrinfo_appinfo_metadata_filter_h handle); +int pkgmgrinfo_pkginfo_foreach_dependency(pkgmgrinfo_pkginfo_h handle, + pkgmgrinfo_pkg_dependency_list_cb dependency_cb, + void *user_data); /** - * @fn int pkgmgrinfo_appinfo_metadata_filter_add(pkgmgrinfo_appinfo_metadata_filter_h handle, const char *key, const char *value) - * @brief This API adds filter condition for the query API. The query will search the entire application metadata information collected from - * the manifest file of all the installed packages. You can specify value as NULL to search based on key only. + * @fn int pkgmgrinfo_pkginfo_foreach_depends_on(pkgmgrinfo_pkginfo_h handle, + pkgmgrinfo_pkg_dependency_list_cb dependency_cb, + void *user_data); + * @brief This API gets the list of packages which has dependency directly + * and indirectly of a particular package * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API - * - * @param[in] handle pointer to the application metadata info filter handle. - * @param[in] key pointer to metadata key - * @param[in] value pointer to metadata value + * @param[in] handle pointer to the package info handle. + * @param[in] dependency_cb callback function for list + * @param[in] user_data user data to be passed to callback function * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_metadata_filter_create() - * @post pkgmgrinfo_appinfo_metadata_filter_foreach(), pkgmgrinfo_appinfo_metadata_filter_destroy() - * @see pkgmgrinfo_appinfo_metadata_filter_foreach() + * @pre pkgmgrinfo_pkginfo_get_pkginfo() + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() * @code -int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data) +int dependency_cb(const char *from, const char *to, const char *type, + const char *required_version,void *user_data) { - char *appid = NULL; - pkgmgrinfo_appinfo_get_appid(handle, &appid); - printf("appid : %s\n", appid); + printf("%s %s %s package", from, to, type); + if (required_version) + printf("required version : %s", required_version); return 0; } -static int get_app_list(const char *mkey, const char *mvalue) +static int list_depends_on(const char *package) { int ret = 0; - pkgmgrinfo_appinfo_metadata_filter_h handle; - ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle); + pkgmgrinfo_pkginfo_h handle; + ret = pkgmgrinfo_pkginfo_get_pkginfo(package, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_metadata_filter_destroy(handle); - return -1; - } - ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL); + ret = pkgmgrinfo_pkginfo_foreach_depends_on(handle, dependency_cb, NULL); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_metadata_filter_add(pkgmgrinfo_appinfo_metadata_filter_h handle, - const char *key, const char *value); +int pkgmgrinfo_pkginfo_foreach_depends_on(pkgmgrinfo_pkginfo_h handle, + pkgmgrinfo_pkg_dependency_list_cb dependency_cb, + void *user_data); /** - * @fn int pkgmgrinfo_appinfo_metadata_filter_foreach(pkgmgrinfo_appinfo_metadata_filter_h handle, pkgmgrinfo_app_list_cb app_cb, void *user_data) - * @fn int pkgmgrinfo_appinfo_usr_metadata_filter_foreach(pkgmgrinfo_appinfo_metadata_filter_h handle, pkgmgrinfo_app_list_cb app_cb, void *user_data, uid_t uid) - * @brief This API executes the filter query. The query will search the entire application metadata information collected from - * the manifest file of all the installed packages. For each application returned by the query, the callback will be called. If callback returns - * negative value, no more callbacks will be called and API will return. + * @fn int pkgmgrinfo_pkginfo_get_list_full(pkgmgrinfo_pkg_list_cb pkg_list_cb, int flag, void *user_data) + * @brief This API gets list of installed packages using flag that used for masking package's information * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API - * - * @param[in] handle pointer to the application metadata info filter handle. - * @param[in] app_cb function pointer to callback - * @param[in] user_data pointer to user data - * @param[in] uid the addressee user id of the instruction + * @param[in] pkg_list_cb iteration function for list + * @param[in] flag enum value of pkgmgrinfo_pkginfo_get_option used for masking package's information + * @param[in] user_data user data to be passed to callback function * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_metadata_filter_create() - * @post pkgmgrinfo_appinfo_metadata_filter_destroy() + * @pre None + * @post None + * @see pkgmgrinfo_pkginfo_get_option * @code -int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data) +int pkg_list_cb(pkgmgrinfo_pkginfo_h handle, void *user_data) { - char *appid = NULL; - pkgmgrinfo_appinfo_get_appid(handle, &appid); - printf("appid : %s\n", appid); - return 0; + char *label1 = NULL; + char *label2 = NULL; + label1 = (char *)user_data; + pkgmgrinfo_pkginfo_get_label(handle, &label2); + if (strcmp(label1, label2) == 0) + return -1; + else + return 0; } -static int get_app_list(const char *mkey, const char *mvalue) +static int list_pkgs() { int ret = 0; - pkgmgrinfo_appinfo_metadata_filter_h handle; - ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle); + char *label = "helloworld"; + ret = pkgmgrinfo_pkginfo_get_list_full(pkg_list_cb, PMINFO_PKGINFO_GET_LABEL, (void *)name); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_metadata_filter_destroy(handle); - return -1; - } - ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_metadata_filter_destroy(handle); - return -1; - } - pkgmgrinfo_appinfo_metadata_filter_destroy(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_metadata_filter_foreach(pkgmgrinfo_appinfo_metadata_filter_h handle, - pkgmgrinfo_app_list_cb app_cb, void *user_data); -int pkgmgrinfo_appinfo_usr_metadata_filter_foreach(pkgmgrinfo_appinfo_metadata_filter_h handle, - pkgmgrinfo_app_list_cb app_cb, void *user_data, uid_t uid); +int pkgmgrinfo_pkginfo_get_usr_list_full(pkgmgrinfo_pkg_list_cb pkg_list_cb, + int flag, void *user_data, uid_t uid); +int pkgmgrinfo_pkginfo_get_list_full(pkgmgrinfo_pkg_list_cb pkg_list_cb, + int flag, void *user_data); + /** - * @fn int pkgmgrinfo_pkginfo_create_certinfo(pkgmgrinfo_certinfo_h *handle) - * @brief This API creates the package cert information handle to get data from db. + * @fn int pkgmgrinfo_appinfo_get_installed_list_full(pkgmgrinfo_app_list_cb app_func, int flag, void *user_data) + * @brief This API gets list of installed applications from all packages using flag that used for masking application's information * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API - * - * @param[out] handle pointer to the package cert handle. + * @param[in] app_func iteration function for list + * @param[in] flag enum value of pkgmgrinfo_appinfo_get_option used for masking application's information + * @param[in] user_data user data to be passed to callback function * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error * @pre None - * @post pkgmgrinfo_pkginfo_destroy_certinfo() - * @see pkgmgrinfo_pkginfo_get_cert_value() - * @see pkgmgrinfo_pkginfo_load_certinfo() + * @post None + * @see pkgmgrinfo_appinfo_get_option * @code -static int get_cert_info(const char *pkgid) +int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data) { int ret = 0; - pkgmgrinfo_certinfo_h handle; - char *auth_cert = NULL; - ret = pkgmgrinfo_pkginfo_create_certinfo(&handle); - if (ret != PMINFO_R_OK) - return -1; - ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle); + char *label1 = NULL; + char *label2 = NULL; + label1 = (char *)user_data; + ret = pkgmgrinfo_appinfo_get_label(handle, &label2); if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_certinfo(handle); + printf("pkgmgrinfo_appinfo_get_label fail"); return -1; } - ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_certinfo(handle); + if (strcmp(label1, label2) == 0) + return -1; + else + return 0; +} + +static int list_apps() +{ + int ret = 0; + char *label = "helloworld"; + ret = pkgmgrinfo_appinfo_get_installed_list_full(app_list_cb, PMINFO_APPINFO_GET_LABEL, (void *)label); + if (ret != PMINFO_R_OK) return -1; - } - printf("Author root certificate: %s\n", auth_root); - pkgmgrinfo_pkginfo_destroy_certinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_create_certinfo(pkgmgrinfo_certinfo_h *handle); +int pkgmgrinfo_appinfo_get_usr_installed_list_full( + pkgmgrinfo_app_list_cb app_func, uid_t uid, int flag, + void *user_data); +int pkgmgrinfo_appinfo_get_installed_list_full( + pkgmgrinfo_app_list_cb app_func, int flag, void *user_data); /** - * @fn int pkgmgrinfo_pkginfo_load_certinfo(const char *pkgid, pkgmgrinfo_certinfo_h handle) - * @brief This API loads the package cert information handle with data from db. + * @fn int pkgmgrinfo_archiveinfo_get_archiveinfo(const char *path, pkgmgrinfo_archiveinfo_h *handle) + * @brief This API creates the package archive information handle from given path * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] pkgid pointer to the package ID. - * @param[in] handle pointer to the package cert handle. + * @param[in] path path of package archive + * @param[out] handle pointer to the package archive info handle * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_pkginfo_create_certinfo() - * @post pkgmgrinfo_pkginfo_destroy_certinfo() - * @see pkgmgrinfo_pkginfo_get_cert_value() + * @pre None + * @post pkgmgrinfo_archiveinfo_destroy_archiveinfo() * @code -static int get_cert_info(const char *pkgid) +static int get_pkg_archive_type(const char *path) { int ret = 0; - pkgmgrinfo_certinfo_h handle; - char *auth_cert = NULL; - ret = pkgmgrinfo_pkginfo_create_certinfo(&handle); + char *type = NULL; + pkgmgrinfo_archiveinfo_h handle; + ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_certinfo(handle); - return -1; - } - ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert); + ret = pkgmgrinfo_archiveinfo_get_type(handle, &type); if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_certinfo(handle); + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); return -1; } - printf("Author root certificate: %s\n", auth_root); - pkgmgrinfo_pkginfo_destroy_certinfo(handle); + printf("pkg archive type: %s\n", type); + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_load_certinfo(const char *pkgid, pkgmgrinfo_certinfo_h handle, uid_t uid); +int pkgmgrinfo_archiveinfo_get_archiveinfo(const char *path, + pkgmgrinfo_archiveinfo_h *handle); /** - * @fn int pkgmgrinfo_pkginfo_get_cert_value(pkgmgrinfo_certinfo_h handle, pkgmgrinfo_cert_type cert_type, const char **cert_value) - * @brief This API gets the package cert information from the handle + * @fn int pkgmgrinfo_archiveinfo_destroy_archiveinfo(pkgmgrinfo_archiveinfo_h handle) + * @brief This API destroys the package archive information handle freeing up all the resources * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the package cert handle. - * @param[in] cert_type certificate type - * @param[out] cert_value pointer to hold certificate value + * @param[in] handle pointer to the package archive info handle * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_pkginfo_create_certinfo() - * @post pkgmgrinfo_pkginfo_destroy_certinfo() - * @see pkgmgrinfo_pkginfo_load_certinfo() + * @pre pkgmgrinfo_archiveinfo_get_archiveinfo() + * @post None * @code -static int get_cert_info(const char *pkgid) +static int get_pkg_archive_type(const char *path) { int ret = 0; - pkgmgrinfo_certinfo_h handle; - char *auth_cert = NULL; - ret = pkgmgrinfo_pkginfo_create_certinfo(&handle); + char *type = NULL; + pkgmgrinfo_archiveinfo_h handle; + ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_certinfo(handle); - return -1; - } - ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert); + ret = pkgmgrinfo_archiveinfo_get_type(handle, &type); if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_certinfo(handle); + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); return -1; } - printf("Author root certificate: %s\n", auth_root); - pkgmgrinfo_pkginfo_destroy_certinfo(handle); + printf("pkg archive type: %s\n", type); + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_get_cert_value(pkgmgrinfo_certinfo_h handle, pkgmgrinfo_cert_type cert_type, const char **cert_value); +int pkgmgrinfo_archiveinfo_destroy_archiveinfo(pkgmgrinfo_archiveinfo_h handle); /** - * @fn int pkgmgrinfo_pkginfo_destroy_certinfo(pkgmgrinfo_certinfo_h handle) - * @brief This API destroys the package cert information handle freeing up all the resources + * @fn int pkgmgrinfo_archiveinfo_get_pkgid(pkgmgrinfo_archiveinfo_h handle, char **pkgid) + * @brief This API gets the package id from the package archive info handle * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the package cert handle. + * @param[in] handle pointer to package archive info handle + * @param[out] pkgid pointer to hold package id * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_pkginfo_create_certinfo() - * @post None - * @see pkgmgrinfo_pkginfo_load_certinfo() + * @pre pkgmgrinfo_archiveinfo_get_archiveinfo() + * @post pkgmgrinfo_archiveinfo_destroy_archiveinfo() * @code -static int get_cert_info(const char *pkgid) +static int get_pkg_archive_id(const char *path) { int ret = 0; - pkgmgrinfo_certinfo_h handle; - char *auth_cert = NULL; - ret = pkgmgrinfo_pkginfo_create_certinfo(&handle); + char *pkg_id = NULL; + pkgmgrinfo_archiveinfo_h handle; + ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_certinfo(handle); - return -1; - } - ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert); + ret = pkgmgrinfo_archiveinfo_get_pkgid(handle, &pkg_id); if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_certinfo(handle); + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); return -1; } - printf("Author root certificate: %s\n", auth_root); - pkgmgrinfo_pkginfo_destroy_certinfo(handle); + printf("pkg archive id: %s\n", pkg_id); + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_destroy_certinfo(pkgmgrinfo_certinfo_h handle); +int pkgmgrinfo_archiveinfo_get_pkgid(pkgmgrinfo_archiveinfo_h handle, + const char **pkgid); /** - * @fn int pkgmgrinfo_delete_certinfo(const char *pkgid) - * @brief This API deletes the package cert information from DB + * @fn int pkgmgrinfo_archiveinfo_get_type(pkgmgrinfo_archiveinfo_h handle, char **type) + * @brief This API gets the package type from the package archive info handle * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] pkgid pointer to the package ID. + * @param[in] handle pointer to package archive info handle + * @param[out] type pointer to hold package type * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error - * @pre None - * @post None + * @pre pkgmgrinfo_archiveinfo_get_archiveinfo() + * @post pkgmgrinfo_archiveinfo_destroy_archiveinfo() * @code -static int delete_cert_info(const char *pkgid) +static int get_pkg_archive_type(const char *path) { int ret = 0; - ret = pkgmgrinfo_delete_certinfo(pkgid); + char *type = NULL; + pkgmgrinfo_archiveinfo_h handle; + ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle); if (ret != PMINFO_R_OK) return -1; + ret = pkgmgrinfo_archiveinfo_get_type(handle, &type); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); + return -1; + } + printf("pkg archive type: %s\n", type); + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_delete_certinfo(const char *pkgid); -int pkgmgrinfo_delete_usr_certinfo(const char *pkgid, uid_t uid); +int pkgmgrinfo_archiveinfo_get_type(pkgmgrinfo_archiveinfo_h handle, + const char **type); /** - * @fn int pkgmgrinfo_create_certinfo_set_handle(pkgmgrinfo_instcertinfo_h *handle) - * @brief This API creates the package cert information handle to set data in db. + * @fn int pkgmgrinfo_archiveinfo_get_version(pkgmgrinfo_archiveinfo_h handle, char **version) + * @brief This API gets the package version from the package archive info handle * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[out] handle pointer to the package cert handle. + * @param[in] handle pointer to package archive info handle + * @param[out] version pointer to hold package version * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error - * @pre None - * @post pkgmgrinfo_destroy_certinfo_set_handle() - * @see pkgmgrinfo_set_cert_value() - * @see pkgmgrinfo_save_certinfo() + * @pre pkgmgrinfo_archiveinfo_get_archiveinfo() + * @post pkgmgrinfo_archiveinfo_destroy_archiveinfo() * @code -static int set_cert_in_db(const char *pkgid) +static int get_pkg_archive_version(const char *path) { int ret = 0; - pkgmgrinfo_instcertinfo_h handle; - ret = pkgmgrinfo_create_certinfo_set_handle(&handle); + char *version = NULL; + pkgmgrinfo_archiveinfo_h handle; + ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_set_cert_value(handle, PMINFO_SET_AUTHOR_ROOT_CERT, "author root certificate"); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_certinfo_set_handle(handle); - return -1; - } - ret = pkgmgrinfo_save_certinfo(pkgid, handle); + ret = pkgmgrinfo_archiveinfo_get_version(handle, &version); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_certinfo_set_handle(handle); + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); return -1; } - pkgmgrinfo_destroy_certinfo_set_handle(handle); + printf("pkg archive version: %s\n", version); + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_create_certinfo_set_handle(pkgmgrinfo_instcertinfo_h *handle); +int pkgmgrinfo_archiveinfo_get_version(pkgmgrinfo_archiveinfo_h handle, + const char **version); /** - * @fn int pkgmgrinfo_set_cert_value(pkgmgrinfo_instcertinfo_h handle, pkgmgrinfo_instcert_type cert_type, char *cert_value) - * @brief This API sets the package cert information in the handle. + * @fn int pkgmgrinfo_archiveinfo_get_api_version(pkgmgrinfo_archiveinfo_h handle, char **api_version) + * @brief This API gets the package api version from the package archive info handle * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the package cert handle. - * @param[in] cert_type certificate type. - * @param[in] cert_value certificate value. + * @param[in] handle pointer to package archive info handle + * @param[out] api_version pointer to hold package api_version * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_create_certinfo_set_handle() - * @post pkgmgrinfo_destroy_certinfo_set_handle() - * @see pkgmgrinfo_save_certinfo() + * @pre pkgmgrinfo_archiveinfo_get_archiveinfo() + * @post pkgmgrinfo_archiveinfo_destroy_archiveinfo() * @code -static int set_cert_in_db(const char *pkgid) +static int get_pkg_archive_api_version(const char *path) { int ret = 0; - pkgmgrinfo_instcertinfo_h handle; - ret = pkgmgrinfo_create_certinfo_set_handle(&handle); + char *api_version = NULL; + pkgmgrinfo_archiveinfo_h handle; + ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_set_cert_value(handle, PMINFO_SET_AUTHOR_ROOT_CERT, "author root certificate"); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_certinfo_set_handle(handle); - return -1; - } - ret = pkgmgrinfo_save_certinfo(pkgid, handle); + ret = pkgmgrinfo_archiveinfo_get_api_version(handle, &api_version); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_certinfo_set_handle(handle); + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); return -1; } - pkgmgrinfo_destroy_certinfo_set_handle(handle); + printf("pkg archive api_version: %s\n", api_version); + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_set_cert_value(pkgmgrinfo_instcertinfo_h handle, pkgmgrinfo_instcert_type cert_type, char *cert_value); +int pkgmgrinfo_archiveinfo_get_api_version(pkgmgrinfo_archiveinfo_h handle, + const char **api_version); /** - * @fn int pkgmgrinfo_save_certinfo(const char *pkgid, pkgmgrinfo_instcertinfo_h handle) - * @brief This API saves the package cert information in the DB. + * @fn int pkgmgrinfo_archiveinfo_get_description(pkgmgrinfo_archiveinfo_h handle, char **description) + * @brief This API gets the package description from the package archive info handle * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] pkgid pointer to the package ID. - * @param[in] handle pointer to the package cert handle. + * @param[in] handle pointer to package archive info handle + * @param[out] description pointer to hold package description * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_create_certinfo_set_handle() - * @post pkgmgrinfo_destroy_certinfo_set_handle() - * @see pkgmgrinfo_save_certinfo() + * @pre pkgmgrinfo_archiveinfo_get_archiveinfo() + * @post pkgmgrinfo_archiveinfo_destroy_archiveinfo() * @code -static int set_cert_in_db(const char *pkgid) +static int get_pkg_archive_description(const char *path) { int ret = 0; - pkgmgrinfo_instcertinfo_h handle; - ret = pkgmgrinfo_create_certinfo_set_handle(&handle); + char *description = NULL; + pkgmgrinfo_archiveinfo_h handle; + ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_set_cert_value(handle, PMINFO_SET_AUTHOR_ROOT_CERT, "author root certificate"); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_certinfo_set_handle(handle); - return -1; - } - ret = pkgmgrinfo_save_certinfo(pkgid, handle); + ret = pkgmgrinfo_archiveinfo_get_description(handle, &description); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_certinfo_set_handle(handle); + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); return -1; } - pkgmgrinfo_destroy_certinfo_set_handle(handle); + printf("pkg archive description: %s\n", description); + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_save_certinfo(const char *pkgid, pkgmgrinfo_instcertinfo_h handle, uid_t uid); +int pkgmgrinfo_archiveinfo_get_description(pkgmgrinfo_archiveinfo_h handle, + const char **description); /** - * @fn int pkgmgrinfo_destroy_certinfo_set_handle(pkgmgrinfo_instcertinfo_h handle) - * @brief This API destroys the package cert information handle freeing up all the resources. + * @fn int pkgmgrinfo_archiveinfo_get_label(pkgmgrinfo_archiveinfo_h handle, char **label) + * @brief This API gets the package label from the package archive info handle * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the package cert handle. + * @param[in] handle pointer to package archive info handle + * @param[out] label pointer to hold package label * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_create_certinfo_set_handle() - * @post None - * @see pkgmgrinfo_save_certinfo() + * @pre pkgmgrinfo_archiveinfo_get_archiveinfo() + * @post pkgmgrinfo_archiveinfo_destroy_archiveinfo() * @code -static int set_cert_in_db(const char *pkgid) +static int get_pkg_archive_label(const char *path) { int ret = 0; - pkgmgrinfo_instcertinfo_h handle; - ret = pkgmgrinfo_create_certinfo_set_handle(&handle); + char *label = NULL; + pkgmgrinfo_archiveinfo_h handle; + ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_set_cert_value(handle, PMINFO_SET_AUTHOR_ROOT_CERT, "author root certificate"); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_certinfo_set_handle(handle); - return -1; - } - ret = pkgmgrinfo_save_certinfo(pkgid, handle); + ret = pkgmgrinfo_archiveinfo_get_label(handle, &label); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_certinfo_set_handle(handle); + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); return -1; } - pkgmgrinfo_destroy_certinfo_set_handle(handle); + printf("pkg archive label: %s\n", label); + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_destroy_certinfo_set_handle(pkgmgrinfo_instcertinfo_h handle); +int pkgmgrinfo_archiveinfo_get_label(pkgmgrinfo_archiveinfo_h handle, + const char **label); /** - * @fn int pkgmgrinfo_datacontrol_get_info(const char *providerid, const char * type, char **appid, char **access) - * @brief This API gets the datacontrol info + * @fn int pkgmgrinfo_archiveinfo_get_author(pkgmgrinfo_archiveinfo_h handle, char **author) + * @brief This API gets the package author from the package archive info handle * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] providerid pointer to the providerid of dataconltrol. - * @param[in] type pointer to the type of dataconltrol. - * @param[out] appid pointer to hold appid, need to free after using - * @param[out] access pointer to hold access, need to free after using + * @param[in] handle pointer to package archive info handle + * @param[out] author pointer to hold package author * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_archiveinfo_get_archiveinfo() + * @post pkgmgrinfo_archiveinfo_destroy_archiveinfo() + * @code +static int get_pkg_archive_author(const char *path) +{ + int ret = 0; + char *author = NULL; + pkgmgrinfo_archiveinfo_h handle; + ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_archiveinfo_get_author(handle, &author); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); + return -1; + } + printf("pkg archive author: %s\n", author); + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); + return 0; +} * @endcode */ -int pkgmgrinfo_datacontrol_get_info(const char *providerid, const char * type, char **appid, char **access); +int pkgmgrinfo_archiveinfo_get_author(pkgmgrinfo_archiveinfo_h handle, + const char **author); /** - * @fn int pkgmgrinfo_appinfo_is_guestmode_appstatus(pkgmgrinfo_appinfo_h handle, bool *status) - * @brief This API gets the application 'guest mode visibility' value from the DB + * @fn int pkgmgrinfo_archiveinfo_get_icon(pkgmgrinfo_archiveinfo_h handle, const unsigned char **icon, size_t *size) + * @brief This API gets the package icon and size from the package archive info handle * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to application info handle - * @param[out] status pointer to hold app guest mode visibility value + * @param[in] handle pointer to package archive info handle + * @param[out] icon pointer to hold package icon + * @param[out] size pointer to hold size of package icon * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument - * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_appid() - * @see pkgmgrinfo_appinfo_is_multiple() + * @retval PMINFO_R_ENOENT no result + * @pre pkgmgrinfo_archiveinfo_get_archiveinfo() + * @post pkgmgrinfo_archiveinfo_destroy_archiveinfo() * @code -static int get_app_guestmode_visibility(const char *appid) +static int get_pkg_archive_icon(const char *path) { int ret = 0; - bool status; - pkgmgrinfo_appinfo_h handle; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + unsigned char *icon = NULL; + size_t icon_size = 0; + pkgmgrinfo_archiveinfo_h handle; + ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_is_guestmode_visibility(handle, &status); + ret = pkgmgrinfo_archiveinfo_get_icon(handle, &icon, &icon_size); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_destroy_appinfo(handle); + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); return -1; } - printf("app guest mode visibility: %d\n", status); - pkgmgrinfo_appinfo_destroy_appinfo(handle); + printf("pkg archive icon size : %zu\n", icon_size); + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_is_guestmode_visibility(pkgmgrinfo_appinfo_h handle, bool *status); +int pkgmgrinfo_archiveinfo_get_icon(pkgmgrinfo_archiveinfo_h handle, + const unsigned char **icon, size_t *size); /** -* @fn int pkgmgrinfo_pkginfo_set_installed_storage(const char *pkgid, INSTALL_LOCATION location) -* @brief This API sets the package 'installed_storage' value in db -* -* @par This API is for package-manager client application -* @par Sync (or) Async : Synchronous API -* -* @param[in] pkgid pointer to the package ID. -* @param[in] location package install location -* @param[in] external_pkg_path image path if pkg has installed at external storage -* @return 0 if success, error code(<0) if fail -* @retval PMINFO_R_OK success -* @retval PMINFO_R_EINVAL invalid argument -* @retval PMINFO_R_ERROR internal error -* @code -static int set_app_installed_storage(const char *appid, INSTALL_LOCATION location) + * @fn int pkgmgrinfo_archiveinfo_foreach_dependency(pkgmgrinfo_archiveinfo_h handle, pkgmgrinfo_dependency_cb callback, void *user_data) + * @brief This API retrieve the dependency information and invoke given callback for it. + * + * @par This API is for package-manager client application + * @par Sync (or) Async : Synchronous API + * + * @param[in] handle pointer to package archive info handle + * @param[in] callback callback to be invoked for each retrieved dependency information + * @param[in] user_data user data to be passed to callback + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @retval PMINFO_R_ERROR internal error + * @pre pkgmgrinfo_archiveinfo_get_archiveinfo() + * @post pkgmgrinfo_archiveinfo_destroy_archiveinfo() + * @code +static int get_pkg_archive_dependency(const char *path, pkgmgrinfo_pkg_dependency_list_cb callback) { int ret = 0; - - ret = pkgmgrinfo_pkginfo_set_installed_storage(handle, INSTALL_EXTERNAL); + size_t icon_size = 0; + pkgmgrinfo_archiveinfo_h handle; + ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_archiveinfo_foreach_dependency(handle, callback, NULL); if (ret != PMINFO_R_OK) { + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); return -1; } + pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle); return 0; } -* @endcode -*/ -int pkgmgrinfo_pkginfo_set_installed_storage(const char *pkgid, INSTALL_LOCATION location, const char *external_pkg_path); -int pkgmgrinfo_pkginfo_set_usr_installed_storage(const char *pkgid, INSTALL_LOCATION location, const char *external_pkg_path, uid_t uid); - -/** - * @brief TEMP + * @endcode */ - - -int pkgmgrinfo_pkginfo_get_usr_list_full(pkgmgrinfo_pkg_list_cb pkg_list_cb, - int flag, void *user_data, uid_t uid); -int pkgmgrinfo_pkginfo_get_list_full(pkgmgrinfo_pkg_list_cb pkg_list_cb, - int flag, void *user_data); -int pkgmgrinfo_appinfo_get_usr_installed_list_full( - pkgmgrinfo_app_list_cb app_func, uid_t uid, int flag, - void *user_data); -int pkgmgrinfo_appinfo_get_installed_list_full( - pkgmgrinfo_app_list_cb app_func, int flag, void *user_data); +int pkgmgrinfo_archiveinfo_foreach_dependency(pkgmgrinfo_archiveinfo_h handle, + pkgmgrinfo_pkg_dependency_list_cb callback, void *user_data); /** * @pkgmgrinfo client API end