X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=include%2Fpkgmgr-info.h;h=9c3dbb61f52f5b13f6d6b6685fbb944734f719d7;hb=f0100a47e20fb502006161bc91554de45bde67ca;hp=e5c4a02f1bfe7ae9a06f89a29722b008dfd4c562;hpb=bc85053bbb79f12b8522202146767eb2dd07d880;p=platform%2Fcore%2Fappfw%2Fpkgmgr-info.git diff --git a/include/pkgmgr-info.h b/include/pkgmgr-info.h index e5c4a02..9c3dbb6 100644 --- a/include/pkgmgr-info.h +++ b/include/pkgmgr-info.h @@ -107,6 +107,10 @@ extern "C" { #define PMINFO_PKGINFO_PROP_PACKAGE_NODISPLAY_SETTING "PMINFO_PKGINFO_PROP_PACKAGE_NODISPLAY_SETTING" /** Boolean property for filtering based on package info*/ #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" @@ -136,12 +140,10 @@ extern "C" { /** String property for filtering based on app info*/ #define PMINFO_APPINFO_PROP_APP_PACKAGE "PMINFO_APPINFO_PROP_APP_PACKAGE" /** 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_APP_INSTALLED_STORAGE "PMINFO_APPINFO_PROP_APP_INSTALLED_STORAGE" - /** 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" /** Boolean property for filtering based on app info*/ #define PMINFO_APPINFO_PROP_APP_NODISPLAY "PMINFO_APPINFO_PROP_APP_NODISPLAY" @@ -158,7 +160,13 @@ extern "C" { /** Boolean property for filtering based on app info*/ #define PMINFO_APPINFO_PROP_APP_UI_GADGET "PMINFO_APPINFO_PROP_APP_UI_GADGET" /** Boolean property for filtering based on app info*/ +#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*/ @@ -166,10 +174,10 @@ extern "C" { /* For multiuser support */ const char *getIconPath(uid_t uid, bool readonly); -const char *getUserPkgParserDBPath(void); -const char *getUserPkgParserDBPathUID(uid_t uid); -const char *getUserPkgCertDBPath(void); -const char *getUserPkgCertDBPathUID(uid_t uid); +char *getUserPkgParserDBPath(void); +char *getUserPkgParserDBPathUID(uid_t uid); +char *getUserPkgCertDBPath(void); +char *getUserPkgCertDBPathUID(uid_t uid); const char *getUserManifestPath(uid_t uid, bool readonly); /** @@ -216,9 +224,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 @@ -258,6 +287,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 * @@ -459,14 +550,14 @@ int pkgmgrinfo_pkginfo_get_api_version(pkgmgrinfo_pkginfo_h handle, char **api_v * @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] tep_name pointer to hold tep name + * @param[in] handle pointer to the pkginfo 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_pkginfo_get_pkginfo() - * @post pkgmgrinfo_pkginfo_destroy_pkginfo() + * @pre pkgmgrinfo_pkginfo_get_pkginfo() + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() * @see pkgmgrinfo_pkginfo_get_pkgid() * @code static int get_tep_name(const char *pkgid) @@ -491,6 +582,87 @@ static int get_tep_name(const char *pkgid) int pkgmgrinfo_pkginfo_get_tep_name(pkgmgrinfo_pkginfo_h handle, char **tep_name); /** + * @fn int pkgmgrinfo_pkginfo_get_zip_mount_file(pkgmgrinfo_pkginfo_h handle, char **zip_mount_file) + * @brief This API gets package mount point path associated with the package + * if package is mount-installed. Otherwise, zip_mount_file is left as NULL value + * + * @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] zip_mount_file pointer to hold zip mount file + * @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_zip_mount_file(const char *pkgid) +{ + int ret = 0; + char *zip_mount_file = NULL; + pkgmgrinfo_pkginfo_h handle = NULL; + ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_pkginfo_get_zip_mount_file(handle, &zip_mount_file); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return -1; + } + if (zip_mount_file != NULL) + printf("Zip mount path is: %s\n", zip_mount_file); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return 0; +} + * @endcode + */ +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 * @@ -571,84 +743,92 @@ static int get_pkg_size(const char *pkgid) int pkgmgrinfo_pkginfo_get_package_size(pkgmgrinfo_pkginfo_h handle, int *size); /** - * @fn int pkgmgrinfo_pkginfo_get_total_size(pkgmgrinfo_pkginfo_h handle, int *size) - * @brief This API gets the installed package total size on the target. + * @fn int pkgmgrinfo_pkginfo_get_icon(pkgmgrinfo_pkginfo_h handle, char **icon) + * @brief This API gets the package icon 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] size pointer to hold package total size + * @param[out] icon pointer to hold 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_pkginfo_get_pkginfo() + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() + * @see pkgmgrinfo_pkginfo_get_pkgid() + * @see pkgmgrinfo_pkginfo_is_removable() * @code -static int get_pkg_total_size(const char *pkgid) +static int get_pkg_icon(const char *pkgid) { int ret = 0; - int size = 0; + char *icon = NULL; pkgmgrinfo_pkginfo_h handle; ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_get_total_size(handle, &size); + ret = pkgmgrinfo_pkginfo_get_icon(handle, &icon); if (ret != PMINFO_R_OK) { pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - printf("pkg total size: %d\n", size); + printf("pkg icon: %s\n", icon); pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ - int pkgmgrinfo_pkginfo_get_total_size(pkgmgrinfo_pkginfo_h handle, int *size); +int pkgmgrinfo_pkginfo_get_icon(pkgmgrinfo_pkginfo_h handle, char **icon); /** - * @fn int pkgmgrinfo_pkginfo_get_data_size(pkgmgrinfo_pkginfo_h handle, int *size) - * @brief This API gets the installed package data size on the target. + * @fn int pkgmgrinfo_pkginfo_get_label(pkgmgrinfo_pkginfo_h handle, char **label) + * @brief This API gets the package label 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] size pointer to hold package data size + * @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_pkginfo_get_pkginfo() + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() + * @see pkgmgrinfo_pkginfo_get_pkgid() + * @see pkgmgrinfo_pkginfo_is_removable() * @code -static int get_pkg_data_size(const char *pkgid) +static int get_pkg_label(const char *pkgid) { int ret = 0; - int size = 0; + char *label = NULL; pkgmgrinfo_pkginfo_h handle; ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_get_data_size(handle, &size); + ret = pkgmgrinfo_pkginfo_get_label(handle, &label); if (ret != PMINFO_R_OK) { pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - printf("pkg data size: %d\n", size); + printf("pkg label: %s\n", label); pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ - int pkgmgrinfo_pkginfo_get_data_size(pkgmgrinfo_pkginfo_h handle, int *size); +int pkgmgrinfo_pkginfo_get_label(pkgmgrinfo_pkginfo_h handle, char **label); /** - * @fn int pkgmgrinfo_pkginfo_get_icon(pkgmgrinfo_pkginfo_h handle, char **icon) - * @brief This API gets the package icon from the package ID + * @fn int pkgmgrinfo_pkginfo_get_description(pkgmgrinfo_pkginfo_h handle, char **description) + * @brief This API gets the package description 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] icon pointer to hold package icon + * @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 @@ -658,36 +838,36 @@ static int get_pkg_data_size(const char *pkgid) * @see pkgmgrinfo_pkginfo_get_pkgid() * @see pkgmgrinfo_pkginfo_is_removable() * @code -static int get_pkg_icon(const char *pkgid) +static int get_pkg_description(const char *pkgid) { int ret = 0; - char *icon = NULL; + char *description = NULL; pkgmgrinfo_pkginfo_h handle; ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_get_icon(handle, &icon); + ret = pkgmgrinfo_pkginfo_get_description(handle, &description); if (ret != PMINFO_R_OK) { pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - printf("pkg icon: %s\n", icon); + printf("pkg description: %s\n", description); pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_get_icon(pkgmgrinfo_pkginfo_h handle, char **icon); +int pkgmgrinfo_pkginfo_get_description(pkgmgrinfo_pkginfo_h handle, char **description); /** - * @fn int pkgmgrinfo_pkginfo_get_label(pkgmgrinfo_pkginfo_h handle, char **label) - * @brief This API gets the package label from the package ID + * @fn int pkgmgrinfo_pkginfo_get_author_name(pkgmgrinfo_pkginfo_h handle, char **author_name) + * @brief This API gets the package's author name 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] label pointer to hold package label + * @param[out] author_name pointer to hold package author name * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -697,36 +877,36 @@ int pkgmgrinfo_pkginfo_get_icon(pkgmgrinfo_pkginfo_h handle, char **icon); * @see pkgmgrinfo_pkginfo_get_pkgid() * @see pkgmgrinfo_pkginfo_is_removable() * @code -static int get_pkg_label(const char *pkgid) +static int get_pkg_author_name(const char *pkgid) { int ret = 0; - char *label = NULL; + char *author_name = NULL; pkgmgrinfo_pkginfo_h handle; ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_get_label(handle, &label); + ret = pkgmgrinfo_pkginfo_get_author_name(handle, &author_name); if (ret != PMINFO_R_OK) { pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - printf("pkg label: %s\n", label); + printf("pkg author name: %s\n", author_name); pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_get_label(pkgmgrinfo_pkginfo_h handle, char **label); +int pkgmgrinfo_pkginfo_get_author_name(pkgmgrinfo_pkginfo_h handle, char **author_name); /** - * @fn int pkgmgrinfo_pkginfo_get_description(pkgmgrinfo_pkginfo_h handle, char **description) - * @brief This API gets the package description from the package ID + * @fn int pkgmgrinfo_pkginfo_get_author_email(pkgmgrinfo_pkginfo_h handle, char **author_email) + * @brief This API gets the package's author email 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] description pointer to hold package description + * @param[out] author_email pointer to hold package author email * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -736,36 +916,114 @@ int pkgmgrinfo_pkginfo_get_label(pkgmgrinfo_pkginfo_h handle, char **label); * @see pkgmgrinfo_pkginfo_get_pkgid() * @see pkgmgrinfo_pkginfo_is_removable() * @code -static int get_pkg_description(const char *pkgid) +static int get_pkg_author_email(const char *pkgid) { int ret = 0; - char *description = NULL; + char *author_email = NULL; pkgmgrinfo_pkginfo_h handle; ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_get_description(handle, &description); + ret = pkgmgrinfo_pkginfo_get_author_email(handle, &author_email); if (ret != PMINFO_R_OK) { pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return -1; } - printf("pkg description: %s\n", description); + printf("pkg author email: %s\n", author_email); pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_get_description(pkgmgrinfo_pkginfo_h handle, char **description); +int pkgmgrinfo_pkginfo_get_author_email(pkgmgrinfo_pkginfo_h handle, char **author_email); /** - * @fn int pkgmgrinfo_pkginfo_get_author_name(pkgmgrinfo_pkginfo_h handle, char **author_name) - * @brief This API gets the package's author name from the package ID + * @fn int pkgmgrinfo_pkginfo_get_author_href(pkgmgrinfo_pkginfo_h handle, char **author_href) + * @brief This API gets the package's author href 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] author_name pointer to hold package author name + * @param[out] author_href pointer to hold package author href + * @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_author_href(const char *pkgid) +{ + int ret = 0; + char *author_href = NULL; + pkgmgrinfo_pkginfo_h handle; + ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_pkginfo_get_author_href(handle, &author_href); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return -1; + } + printf("pkg author href: %s\n", author_href); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_pkginfo_get_author_href(pkgmgrinfo_pkginfo_h handle, char **author_href); + +/** + * @fn int pkgmgrinfo_pkginfo_get_installed_storage(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_installed_storage *storage) + * @brief This API gets the package installed storagae 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 package info handle + * @param[out] storage pointer to hold package installed 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 + * @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_installed_storage(const char *pkgid) +{ + int ret = 0; + pkgmgrinfo_installed_storage storage; + pkgmgrinfo_pkginfo_h handle; + ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_pkginfo_get_installed_storage(handle, &storage); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return -1; + } + printf("pkg installed storage: %d\n", storage); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_pkginfo_get_installed_storage(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_installed_storage *storage); + +/** + * @fn int pkgmgrinfo_pkginfo_get_installed_time(pkgmgrinfo_pkginfo_h handle, int *installed_time) + * @brief This API gets the installed time 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] installed_time pointer to hold installed time of package * @return 0 if success, error code(<0) if fail * @retval PMINFO_R_OK success * @retval PMINFO_R_EINVAL invalid argument @@ -775,182 +1033,322 @@ int pkgmgrinfo_pkginfo_get_description(pkgmgrinfo_pkginfo_h handle, char **descr * @see pkgmgrinfo_pkginfo_get_pkgid() * @see pkgmgrinfo_pkginfo_is_removable() * @code -static int get_pkg_author_name(const char *pkgid) +static int get_pkg_installed_time(const char *pkgid) +{ + int ret = 0; + int installed_time = 0; + pkgmgrinfo_pkginfo_h handle; + ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_pkginfo_get_installed_time(handle, &installed_time); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return -1; + } + printf("installed_time: %d\n", installed_time); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_pkginfo_get_installed_time(pkgmgrinfo_pkginfo_h handle, int *installed_time); + +/** + * @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[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 + * @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 updateinfo_handle_create() +{ + int ret = 0; + + pkgmgrinfo_updateinfo_h handle; + ret = pkgmgrinfo_updateinfo_create(&handle); + if (ret != PMINFO_R_OK) + return -1; + pkgmgrinfo_update_infodestroy(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_updateinfo_create(pkgmgrinfo_updateinfo_h *update_handle); + +/** + * @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 update info handle + * @return 0 if success, error code(<0) if fail + * @retval PMINFO_R_OK success + * @retval PMINFO_R_EINVAL invalid argument + * @pre pkgmgrinfo_updateinfo_create() + * @see pkgmgr_client_register_pkg_updateinfo() + * @code +static int updateinfo_handle_destroy(pkgmgrinfo_updateinfo_h handle) +{ + int ret = 0; + + ret = pkgmgrinfo_updateinfo_destroy(handle); + if (ret != PMINFO_R_OK) + return -1; + return 0; +} + * @endcode + */ +int pkgmgrinfo_updateinfo_destroy(pkgmgrinfo_updateinfo_h update_handle); + +/** + * @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] 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 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_update_info(const char *pkgid) +{ + int ret = 0; + char *version; + pkgmgrinfo_updateinfo_h handle; + ret = pkgmgrinfo_updateinfo_get_updateinfo(pkgid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_updateinfo_get_version(handle, &version); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_updateinfo_destroy(handle); + return -1; + } + printf("pkg update version: %s\n", version + pkgmgrinfo_updateinfo_destroy(handle); + return 0; +} + * @endcode + */ +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_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 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 + * @code +static int set_pkgid_to_handle(pkgmgrinfo_updateinfo_h handle, const char *pkgid) +{ + int ret = 0; + + ret = pkgmgrinfo_updateinfo_set_pkgid(handle, pkgid); + if (ret != PMINFO_R_OK) + return -1; + return 0; +} + * @endcode + */ +int pkgmgrinfo_updateinfo_set_pkgid(pkgmgrinfo_updateinfo_h updateinfo_handle, const char *pkgid); + +/** + * @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 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 set_version_to_handle(pkgmgrinfo_updateinfo_h handle, const char *version) +{ + int ret = 0; + + ret = pkgmgrinfo_updateinfo_set_version(handle, version); + if (ret != PMINFO_R_OK) + return -1; + return 0; +} + * @endcode + */ +int pkgmgrinfo_updateinfo_set_version(pkgmgrinfo_updateinfo_h updateinfo_handle, const char *version); + +/** + * @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 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 set_type_to_handle(pkgmgrinfo_updateinfo_h handle, pkgmgrinfo_updateinfo_update_type type) { int ret = 0; - char *author_name = NULL; - pkgmgrinfo_pkginfo_h handle; - ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); + + ret = pkgmgrinfo_updateinfo_set_type(handle, type); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_get_author_name(handle, &author_name); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); - return -1; - } - printf("pkg author name: %s\n", author_name); - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_get_author_name(pkgmgrinfo_pkginfo_h handle, char **author_name); +int pkgmgrinfo_updateinfo_set_type(pkgmgrinfo_updateinfo_h updateinfo_handle, pkgmgrinfo_updateinfo_update_type type); /** - * @fn int pkgmgrinfo_pkginfo_get_author_email(pkgmgrinfo_pkginfo_h handle, char **author_email) - * @brief This API gets the package's author email from the package ID + * @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] author_email pointer to hold package author email + * @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 - * @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_author_email(const char *pkgid) +static int get_pkgid_from_handle(pkgmgrinfo_updateinfo_h handle) { int ret = 0; - char *author_email = NULL; - pkgmgrinfo_pkginfo_h handle; - ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); + char *pkgid; + + ret = pkgmgrinfo_updateinfo_get_pkgid(handle, &pkgid); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_get_author_email(handle, &author_email); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); - return -1; - } - printf("pkg author email: %s\n", author_email); - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_get_author_email(pkgmgrinfo_pkginfo_h handle, char **author_email); +int pkgmgrinfo_updateinfo_get_pkgid(pkgmgrinfo_updateinfo_h update_handle, char **pkgid); /** - * @fn int pkgmgrinfo_pkginfo_get_author_href(pkgmgrinfo_pkginfo_h handle, char **author_href) - * @brief This API gets the package's author href from the 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] handle pointer to package info handle - * @param[out] author_href pointer to hold package author href + * @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 pkgmgrinfo_pkginfo_get_pkginfo() - * @post pkgmgrinfo_pkginfo_destroy_pkginfo() - * @see pkgmgrinfo_pkginfo_get_pkgid() - * @see pkgmgrinfo_pkginfo_is_removable() * @code -static int get_pkg_author_href(const char *pkgid) +static int get_version_from_handle(pkgmgrinfo_updateinfo_h handle) { int ret = 0; - char *author_href = NULL; - pkgmgrinfo_pkginfo_h handle; - ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); + char *version; + + ret = pkgmgrinfo_updateinfo_get_version(handle, &version); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_get_author_href(handle, &author_href); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); - return -1; - } - printf("pkg author href: %s\n", author_href); - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_get_author_href(pkgmgrinfo_pkginfo_h handle, char **author_href); +int pkgmgrinfo_updateinfo_get_version(pkgmgrinfo_updateinfo_h updateinfo_handle, char **version); /** - * @fn int pkgmgrinfo_pkginfo_get_installed_storage(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_installed_storage *storage) - * @brief This API gets the package installed storagae value from the package 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] handle pointer to package info handle - * @param[out] storage pointer to hold package installed storage + * @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 pkgmgrinfo_pkginfo_get_pkginfo() - * @post pkgmgrinfo_pkginfo_destroy_pkginfo() - * @see pkgmgrinfo_pkginfo_get_pkgid() - * @see pkgmgrinfo_pkginfo_is_removable() * @code -static int get_pkg_installed_storage(const char *pkgid) +static int get_type_from_handle(pkgmgrinfo_updateinfo_h handle) { int ret = 0; - pkgmgrinfo_installed_storage storage; - pkgmgrinfo_pkginfo_h handle; - ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); + pkgmgrinfo_updateinfo_update_type *type; + + ret = pkgmgrinfo_updateinfo_get_type(handle, &type); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_get_installed_storage(handle, &storage); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); - return -1; - } - printf("pkg installed storage: %d\n", storage); - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_get_installed_storage(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_installed_storage *storage); +int pkgmgrinfo_updateinfo_get_update_type(pkgmgrinfo_updateinfo_h updateinfo_handle, pkgmgrinfo_updateinfo_update_type *type); + /** - * @fn int pkgmgrinfo_pkginfo_get_installed_time(pkgmgrinfo_pkginfo_h handle, int *installed_time) - * @brief This API gets the installed time of package 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] installed_time pointer to hold installed time of package + * @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_removable() * @code -static int get_pkg_installed_time(const char *pkgid) +static int foreach_pkg_updateinfo(pkgmgrinfo_foreach_updateinfo_cb callback) { int ret = 0; - int installed_time = 0; - 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_get_installed_time(handle, &installed_time); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); - return -1; - } - printf("installed_time: %d\n", installed_time); - pkgmgrinfo_pkginfo_destroy_pkginfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_get_installed_time(pkgmgrinfo_pkginfo_h handle, int *installed_time); +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_appinfo_get_launch_mode(pkgmgrinfo_appinfo_h handle, char **mode) @@ -1182,6 +1580,42 @@ static int get_csc_path(const char *pkgid) int pkgmgrinfo_pkginfo_get_csc_path(pkgmgrinfo_pkginfo_h handle, char **path); /** + * @fn int pkgmgrinfo_pkginfo_get_support_mode(pkgmgrinfo_pkginfo_h handle, int *support_mode) + * @brief This API gets the support_mode of package + * + * @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 + * @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) +{ + 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; + + ret = pkgmgrinfo_pkginfo_get_support_mode(handle, &support_mode); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + 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); + +/** * @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 * @@ -1959,6 +2393,7 @@ static int get_tpk_pkg_count() */ 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_pkginfo_foreach_privilege(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_pkg_privilege_list_cb privilege_func, void *user_data); @@ -2004,14 +2439,53 @@ static int list_privilege(const char *package, char *privilege) int pkgmgrinfo_pkginfo_foreach_privilege(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_pkg_privilege_list_cb privilege_func, void *user_data); +/** + * @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] 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 +int privilege_func(const char *name, const char *license_path, void *user_data) +{ + printf("appdefined privilege : %s", name); + if (license_path) + printf("licensed privilege, lecense path : %s", license_path); + return 0; +} + +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; + 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_pkginfo_foreach_appdefined_privilege(pkgmgrinfo_pkginfo_h handle, + pkgmgrinfo_pkg_appdefined_privilege_list_cb privilege_func, void *user_data); + /* TODO: add doxygen comment here */ -int pkgmgrinfo_pkginfo_get_size_from_xml(const char *manifest, int *size); -int pkgmgrinfo_pkginfo_get_location_from_xml(const char *manifest, pkgmgrinfo_install_location *location); int pkgmgrinfo_pkginfo_is_for_all_users(pkgmgrinfo_pkginfo_h handle, bool *for_all_users); -int pkgmgrinfo_appinfo_set_state_enabled(const char *appid, bool enabled); -int pkgmgrinfo_appinfo_set_usr_state_enabled(const char *appid, bool enabled, uid_t uid); -int pkgmgrinfo_appinfo_set_default_label(const char *appid, const char *label); -int pkgmgrinfo_appinfo_set_usr_default_label(const char *appid, const char *label, uid_t uid); /** * @fn int pkgmgrinfo_appinfo_clone_appinfo(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_pkginfo_h *clone) @@ -2264,6 +2738,46 @@ int pkgmgrinfo_appinfo_get_appinfo(const char *appid, pkgmgrinfo_appinfo_h *hand int pkgmgrinfo_appinfo_get_usr_appinfo(const char *appid, uid_t uid, pkgmgrinfo_appinfo_h *handle); /** + * @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] 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 None + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @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_all_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_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_appid(pkgmgrinfo_appinfo_h handle, char **appid) * @brief This API gets the application ID * @@ -2572,6 +3086,43 @@ int pkgmgrinfo_appinfo_get_localed_label(const char *appid, const char *locale, int pkgmgrinfo_appinfo_usr_get_localed_label(const char *appid, const char *locale, uid_t uid, char **label); /** + * @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 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 + * @code +static int get_metadata_value(const char *appid, const char *metadata_key) +{ + int ret = 0; + 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_metadata_value(handle, metadata_key, &metadata_value); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_get_metadata_value(pkgmgrinfo_appinfo_h handle, const char *metadata_key, char **metadata_value); + +/** * @fn int pkgmgrinfo_appinfo_get_component(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_component *component) * @brief This API gets the component of the application * @@ -3317,22 +3868,65 @@ int pkgmgrinfo_appinfo_get_datacontrol_info(const char *providerid, const char * 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 + * @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 dataconltrol. - * @param[out] appid pointer to hold appid, need to free after using + * @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 - * @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_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) @@ -3417,14 +4011,14 @@ int pkgmgrinfo_appinfo_get_effective_appid(pkgmgrinfo_appinfo_h handle, char **e * @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 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() + * @post pkgmgrinfo_appinfo_destroy_appinfo() * @see pkgmgrinfo_appinfo_get_appid() * @code static int get_tep_name(const char *appid) @@ -3449,6 +4043,45 @@ static int get_tep_name(const char *appid) int pkgmgrinfo_appinfo_get_tep_name(pkgmgrinfo_appinfo_h handle, char **tep_name); /** + * @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 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 + * @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_zip_mount_file(const char *appid) +{ + int ret = 0; + 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_get_zip_mount_file(handle, &zip_mount_file); + 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); + +/** * @fn int pkgmgrinfo_appinfo_get_root_path(pkgmgrinfo_appinfo_h handle, char **path) * @brief This API gets the root path of application * @@ -3523,49 +4156,82 @@ static int get_app_api_version(const char *appid) int pkgmgrinfo_appinfo_get_api_version(pkgmgrinfo_appinfo_h handle, char **api_version); /** - * @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_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 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] 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 * @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 -int permission_func(const char *name, void *user_data) +static int get_app_installed_time(const char *appid) { - if (strcmp(name, (char *)user_data) == 0) + int ret = 0; + int installed_time = 0; + pkgmgrinfo_appinfo_h handle = NULL; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + if (ret != PMINFO_R_OK) return -1; - else - return 0; + ret = pkgmgrinfo_appinfo_get_installed_time(handle, &installed_time); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + printf("installed_time: %d\n", installed_time); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; } + * @endcode + */ +int pkgmgrinfo_appinfo_get_installed_time(pkgmgrinfo_appinfo_h handle, int *installed_time); -static int list_permission(const char *appid, char *permission) +/** + * @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 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 + * @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_support_mode(const char *appid) { int ret = 0; - pkgmgrinfo_appinfo_h handle; + 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_foreach_permission(handle, permission_func, (void *)permission); + ret = pkgmgrinfo_appinfo_get_support_mode(handle, &support_mode); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } + printf("support_mode: %s\n", support_mode); 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_support_mode(pkgmgrinfo_appinfo_h handle, int *support_mode); + /** * @fn int pkgmgrinfo_appinfo_foreach_category(pkgmgrinfo_appinfo_h handle, @@ -3659,6 +4325,35 @@ static int list_metadata(const char *appid, char *key) int pkgmgrinfo_appinfo_foreach_metadata(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_metadata_list_cb metadata_func, void *user_data); +/** + * @fn int pkgmgrinfo_appinfo_foreach_appcontrol_privileges(const char *appid, + * const char *operation, const char *uri, const char *mime, + * 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] uri uri of appcontrol + * @param[in] mime mime 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, const char *uri, const char *mime, + 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, const char *uri, const char *mime, + pkgmgrinfo_pkg_privilege_list_cb privilege_func, + void *user_data); /** * @fn int pkgmgrinfo_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle, @@ -4178,14 +4873,14 @@ int pkgmgrinfo_appinfo_is_process_pool(pkgmgrinfo_appinfo_h handle, bool *proces * @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[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() + * @post pkgmgrinfo_appinfo_destroy_appinfo() * @see pkgmgrinfo_appinfo_get_appid() * @code static int get_app_installed_location(const char *appid) @@ -4321,6 +5016,119 @@ static int get_app_support_disable(const char *appid) 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 whethere the given application is global application or user application * @@ -4358,6 +5166,54 @@ int pkgmgrinfo_appinfo_is_support_disable(pkgmgrinfo_appinfo_h handle, bool *sup 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 * @@ -5118,8 +5974,8 @@ static int delete_cert_info(const char *pkgid) } * @endcode */ - int pkgmgrinfo_delete_certinfo(const char *pkgid); - int pkgmgrinfo_delete_usr_certinfo(const char *pkgid, uid_t uid); +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) @@ -5341,55 +6197,18 @@ static int get_app_guestmode_visibility(const char *appid) } * @endcode */ - int pkgmgrinfo_appinfo_is_guestmode_visibility(pkgmgrinfo_appinfo_h handle, bool *status); - -/** - * @fn int pkgmgrinfo_appinfo_set_guestmode_visibility(pkgmgrinfo_appinfo_h handle, bool status) - * @brief This API sets the application 'guest mode visibility' value in 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 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 set_app_guestmode_visibility(const char *appid, bool value) -{ - int ret = 0; - pkgmgrinfo_appinfo_h handle; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); - if (ret != PMINFO_R_OK) - return -1; - ret = pkgmgrinfo_appinfo_set_guestmode_visibility(handle, value); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_destroy_appinfo(handle); - return -1; - } - pkgmgrinfo_appinfo_destroy_appinfo(handle); - return 0; -} - * @endcode - */ - int pkgmgrinfo_appinfo_set_guestmode_visibility(pkgmgrinfo_appinfo_h handle, bool status); - int pkgmgrinfo_appinfo_set_usr_guestmode_visibility(pkgmgrinfo_appinfo_h handle, uid_t uid, bool status); +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 This API is for package-manager client application * @par Sync (or) Async : Synchronous API * -* @param[in] pkgid pointer to the package ID. +* @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 @@ -5407,33 +6226,48 @@ static int set_app_installed_storage(const char *appid, INSTALL_LOCATION locatio } * @endcode */ - int pkgmgrinfo_pkginfo_set_installed_storage(const char *pkgid, INSTALL_LOCATION location); - int pkgmgrinfo_pkginfo_set_usr_installed_storage(const char * pkgid, INSTALL_LOCATION location, uid_t uid); - -/** - * @pkgmgrinfo client API -**/ - -/** - * @brief listening status type in pkgmgrinfo. - */ -#define PMINFO_CLIENT_STATUS_ALL 0x00 -#define PMINFO_CLIENT_STATUS_INSTALL 0x01 -#define PMINFO_CLIENT_STATUS_UNINSTALL 0x02 -#define PMINFO_CLIENT_STATUS_UPGRADE 0x04 -#define PMINFO_CLIENT_STATUS_MOVE 0x08 -#define PMINFO_CLIENT_STATUS_CLEAR_DATA 0x10 -#define PMINFO_CLIENT_STATUS_INSTALL_PROGRESS 0x20 - -/** - * @brief This APIs provides pkgmgrinfo client listener - */ -pkgmgrinfo_client *pkgmgrinfo_client_new(pkgmgrinfo_client_type ctype); -int pkgmgrinfo_client_set_status_type(pkgmgrinfo_client *pc, int status_type); -int pkgmgrinfo_client_listen_status(pkgmgrinfo_client *pc, pkgmgrinfo_handler event_cb, void *data); -int pkgmgrinfo_client_free(pkgmgrinfo_client *pc); -int pkgmgrinfo_client_request_enable_external_pkg(char *pkgid); - +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); + +/** + * @brief TEMP + */ + + +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_get_archiveinfo(const char *path, + pkgmgrinfo_archiveinfo_h *handle); +int pkgmgrinfo_archiveinfo_destroy_archiveinfo(pkgmgrinfo_archiveinfo_h handle); +int pkgmgrinfo_archiveinfo_get_pkgid(pkgmgrinfo_archiveinfo_h handle, + const char **pkgid); +int pkgmgrinfo_archiveinfo_get_type(pkgmgrinfo_archiveinfo_h handle, + const char **type); +int pkgmgrinfo_archiveinfo_get_version(pkgmgrinfo_archiveinfo_h handle, + const char **version); +int pkgmgrinfo_archiveinfo_get_api_version(pkgmgrinfo_archiveinfo_h handle, + const char **api_version); +int pkgmgrinfo_archiveinfo_get_description(pkgmgrinfo_archiveinfo_h handle, + const char **description); +int pkgmgrinfo_archiveinfo_get_label(pkgmgrinfo_archiveinfo_h handle, + const char **label); +int pkgmgrinfo_archiveinfo_get_author(pkgmgrinfo_archiveinfo_h handle, + const char **author); +int pkgmgrinfo_archiveinfo_get_icon(pkgmgrinfo_archiveinfo_h handle, + const unsigned char **icon, size_t *size); /** * @pkgmgrinfo client API end