X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=include%2Fpkgmgr-info.h;h=5bb8bd449d5586116991ae9ad5a502b353588661;hb=16b761668dd29109d880d8c119bcad58b70c51cb;hp=264c11023b9de1259767a6396652056cb0f3a115;hpb=aa70cbccd1558be9529f274428fcbb8ea762a7a2;p=platform%2Fcore%2Fappfw%2Fpkgmgr-info.git diff --git a/include/pkgmgr-info.h b/include/pkgmgr-info.h index 264c110..5bb8bd4 100644 --- a/include/pkgmgr-info.h +++ b/include/pkgmgr-info.h @@ -20,10 +20,6 @@ * */ - - - - /** * @file pkgmgr-info.h * @author Sewook Park @@ -51,6 +47,8 @@ #include #include +#include "pkgmgrinfo_type.h" + #ifdef __cplusplus extern "C" { #endif @@ -74,300 +72,6 @@ extern "C" { * Generated by Sewook Park */ -/** - * @brief A type to retrieve uid information from the manifest handle - */ -typedef struct { - uid_t uid; -} pkgmgrinfo_uidinfo_t; - -/** - * @brief A handle to insert certificate information - */ -typedef void* pkgmgrinfo_instcertinfo_h; - -/** - * @brief Certificate Types to be used for setting information - */ -typedef enum { - PMINFO_SET_AUTHOR_ROOT_CERT = 0, /**< Author Root Certificate*/ - PMINFO_SET_AUTHOR_INTERMEDIATE_CERT = 1, /**< Author Intermediate Certificate*/ - PMINFO_SET_AUTHOR_SIGNER_CERT = 2, /**< Author Signer Certificate*/ - PMINFO_SET_DISTRIBUTOR_ROOT_CERT = 3, /**< Distributor Root Certificate*/ - PMINFO_SET_DISTRIBUTOR_INTERMEDIATE_CERT = 4, /**< Distributor Intermediate Certificate*/ - PMINFO_SET_DISTRIBUTOR_SIGNER_CERT = 5, /**< Distributor Signer Certificate*/ - PMINFO_SET_DISTRIBUTOR2_ROOT_CERT = 6, /**< End Entity Root Certificate*/ - PMINFO_SET_DISTRIBUTOR2_INTERMEDIATE_CERT = 7, /**< End Entity Intermediate Certificate*/ - PMINFO_SET_DISTRIBUTOR2_SIGNER_CERT = 8, /**< End Entity Signer Certificate*/ -}pkgmgrinfo_instcert_type; - -typedef enum { - PMINFO_CERT_COMPARE_MATCH, - PMINFO_CERT_COMPARE_MISMATCH, - PMINFO_CERT_COMPARE_LHS_NO_CERT, - PMINFO_CERT_COMPARE_RHS_NO_CERT, - PMINFO_CERT_COMPARE_BOTH_NO_CERT, - PMINFO_CERT_COMPARE_ERROR, -} pkgmgrinfo_cert_compare_result_type_e; - -/** - * @brief API return values - */ -enum { - PMINFO_R_EINVAL = -2, /**< Invalid argument */ - PMINFO_R_ERROR = -1, /**< General error */ - PMINFO_R_OK = 0 /**< General success */ -}; - -/** - * @brief Value to be used when filtering based on install location - */ -#define PMINFO_PKGINFO_INSTALL_LOCATION_AUTO "LOCATION_AUTO" - -/** - * @brief Value to be used when filtering based on install location - */ -#define PMINFO_PKGINFO_INSTALL_LOCATION_INTERNAL "LOCATION_INTERNAL" - -/** - * @brief Value to be used when filtering based on install location - */ -#define PMINFO_PKGINFO_INSTALL_LOCATION_EXTERNAL "LOCATION_EXTERNAL" - -/** - * @brief Value to be used when filtering based on app-component - */ -#define PMINFO_APPINFO_UI_APP "UI_APP" - -/** - * @brief Value to be used when filtering based on app-component - */ -#define PMINFO_APPINFO_SVC_APP "SVC_APP" - -typedef enum { - PMINFO_HWACCELERATION_NOT_USE_GL = 0, /**< Don't use hardware acceleration*/ - PMINFO_HWACCELERATION_USE_GL = 1, /**< Use hardware acceleration*/ - PMINFO_HWACCELERATION_USE_SYSTEM_SETTING = 2 /**< Follow system setting for hardware acceleration */ -}pkgmgrinfo_app_hwacceleration; - -typedef enum { - PMINFO_SCREENREADER_OFF = 0, /**< Don't use screen reader*/ - PMINFO_SCREENREADER_ON = 1, /**< Use screen reader*/ - PMINFO_SCREENREADER_USE_SYSTEM_SETTING = 2 /**< Follow system setting for screen reader */ -}pkgmgrinfo_app_screenreader; - -typedef enum { - PMINFO_RECENTIMAGE_USE_ICON = 0, /**package); + pkgmgrinfo_appinfo_destroy_appinfo(clone); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_clone_appinfo(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_pkginfo_h *clone); + + +/** + * @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 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_pkginfo_get_pkginfo() + * @post pkgmgrinfo_pkginfo_destroy_pkginfo() + * @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) +{ + int ret = 0; + pkgmgrinfo_pkginfo_h handle; + 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); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return -1; + } + 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); + +/** + * @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] 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 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); + +/** + * @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] 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 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_installed_list(app_list_cb, (void *)name); + if (ret != PMINFO_R_OK) { + return -1; + } + 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); + +/** + * @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] 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_disabled_app_type(const char *appid) +{ + int ret = 0; + char *type = NULL; + pkgmgrinfo_appinfo_h handle; + ret = pkgmgrinfo_appinfo_get_disabled_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_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_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] 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_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_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_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 + * + * @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 + * @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() + * @code +static int get_app_id(const char *appid) +{ + int ret = 0; + 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_appid(handle, &app_id); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + printf("app id: %s\n", app_id); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_get_appid(pkgmgrinfo_appinfo_h handle, char **appid); + +/** + * @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] 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 + * @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_pkgname(const char *appid) +{ + int ret = 0; + 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_pkgname(handle, &pkgname); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + printf("pkg name: %s\n", pkgname); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_get_pkgname(pkgmgrinfo_appinfo_h handle, char **pkg_name); + +/** + * @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] 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_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_is_multiple() + * @code +static int get_app_pkgid(const char *appid) +{ + int ret = 0; + 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_pkgid(handle, &pkgid); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + printf("pkg id: %s\n", pkgid); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_get_pkgid(pkgmgrinfo_appinfo_h handle, char **pkgid); + +/** + * @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] 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 + * @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_pkgtype(const char *appid) +{ + int ret = 0; + 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_pkgtype(handle, &pkgtype); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + printf("pkgtype: %s\n", pkgtype); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_get_pkgtype(pkgmgrinfo_appinfo_h handle, char **pkgtype); + +/** + * @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] 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_appid() + * @see pkgmgrinfo_appinfo_is_multiple() + * @code +static int get_app_exec(const char *appid) +{ + int ret = 0; + 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_exec(handle, &exec); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + printf("exec name: %s\n", exec); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_get_exec(pkgmgrinfo_appinfo_h handle, char **exec); + +/** + * @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 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() + * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_is_multiple() * @code static int get_app_icon(const char *appid) { @@ -2589,14 +3028,51 @@ static int get_localed_label(const char *appid, const char *locale) printf("localed label: %s\n", label); - free(label); + free(label); + + 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); + +/** + * @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_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_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) @@ -3246,6 +3722,45 @@ static int get_app_effectimages(const char *appid) int pkgmgrinfo_appinfo_get_effectimage(pkgmgrinfo_appinfo_h handle, char **portrait_img, char **landscape_img); /** + * @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] 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 + * @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) +{ + int ret = 0; + 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_get_effectimage_type(handle, &effectimg_type); + 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); + +/** * @fn int pkgmgrinfo_appinfo_get_submode_mainid(pkgmgrinfo_appinfo_h handle, char **submode_mainid) * @brief This API gets the submode_mainid of the application * @@ -3301,26 +3816,351 @@ int pkgmgrinfo_appinfo_get_submode_mainid(pkgmgrinfo_appinfo_h handle, char **s * @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); +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_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 + * @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_alias_appid(const char *appid) +{ + int ret = 0; + 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_get_alias_appid(handle, &alias_appid); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + printf("alias_appid: %s\n", alias_appid); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_get_alias_appid(pkgmgrinfo_appinfo_h handle, char **alias_appid); + +/** + * @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 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 + * @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_effective_appid(const char *appid) +{ + int ret = 0; + 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_get_effective_appid(handle, &effective_appid); + 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); + +/** + * @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 Sync (or) Async : Synchronous API + * + * @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() + * @code +static int get_tep_name(const char *appid) +{ + int ret = 0; + 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_get_tep_name(handle, &tep_name); + 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); + +/** + * @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 + * + * @par Sync (or) Async : Synchronous API + * + * @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 + * @code +static int get_root_path(const char *appid) +{ + int ret = 0; + char *path = 0; + pkgmgrinfo_appinfo_h handle; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + if (ret != PMINFO_R_OK) + return -1; + + ret = pkgmgrinfo_appinfo_get_root_path(handle, &path); + 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); + +/** + * @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 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 + * @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_api_version(const char *appid) +{ + int ret = 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_get_api_version(handle, &api_version); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + printf("app api_version: %s\n", api_version); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + * @endcode + */ +int pkgmgrinfo_appinfo_get_api_version(pkgmgrinfo_appinfo_h handle, char **api_version); + +/** + * @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[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 +static int get_app_installed_time(const char *appid) +{ + 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; + 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); /** - * @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_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] providerid pointer to the providerid of dataconltrol. - * @param[out] appid pointer to hold appid, need to free after using + * @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; + 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_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_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_support_mode(pkgmgrinfo_appinfo_h handle, int *support_mode); /** * @fn int pkgmgrinfo_appinfo_foreach_permission(pkgmgrinfo_appinfo_h handle, @@ -3513,8 +4353,33 @@ static int check_operation(const char *appid, char *operation) */ int pkgmgrinfo_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data); -int pkgmgrinfo_usr_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle, - pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data, uid_t uid); + +/** + * @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) @@ -3655,229 +4520,33 @@ int pkgmgrinfo_appinfo_is_indicator_display_allowed(pkgmgrinfo_appinfo_h handle, static int get_app_taskmanage(const char *appid) { int ret = 0; - bool taskmanage; - pkgmgrinfo_appinfo_h handle; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); - if (ret != PMINFO_R_OK) - return -1; - ret = pkgmgrinfo_appinfo_is_taskmanage(handle, &taskmanage); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_destroy_appinfo(handle); - return -1; - } - printf("app taskmanage: %d\n", taskmanage); - pkgmgrinfo_appinfo_destroy_appinfo(handle); - return 0; -} - * @endcode - */ -int pkgmgrinfo_appinfo_is_taskmanage(pkgmgrinfo_appinfo_h handle, bool *taskmanage); - -/** - * @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[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 - * @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_enabled(const char *appid) -{ - int ret = 0; - bool enabled; - pkgmgrinfo_appinfo_h handle; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); - if (ret != PMINFO_R_OK) - return -1; - ret = pkgmgrinfo_appinfo_is_taskmanage(handle, &enabled); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_destroy_appinfo(handle); - return -1; - } - printf("app enabled: %d\n", enabled); - pkgmgrinfo_appinfo_destroy_appinfo(handle); - return 0; -} - * @endcode - */ -int pkgmgrinfo_appinfo_is_enabled(pkgmgrinfo_appinfo_h handle, bool *enabled); - -/** - * @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[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 pkgmgrinfo_appinfo_get_appinfo() - * @post pkgmgrinfo_appinfo_destroy_appinfo() - * @see pkgmgrinfo_appinfo_get_appid() - * @see pkgmgrinfo_appinfo_is_multiple() - * @code -static int get_app_onboot(const char *appid) -{ - int ret = 0; - bool onboot; - pkgmgrinfo_appinfo_h handle; - ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); - if (ret != PMINFO_R_OK) - return -1; - ret = pkgmgrinfo_appinfo_is_onboot(handle, &onboot); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_destroy_appinfo(handle); - return -1; - } - printf("app onboot: %d\n", onboot); - pkgmgrinfo_appinfo_destroy_appinfo(handle); - return 0; -} - * @endcode - */ -int pkgmgrinfo_appinfo_is_onboot(pkgmgrinfo_appinfo_h handle, bool *onboot); - -/** - * @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 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; + bool taskmanage; + pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_is_preload(handle, &preload); + ret = pkgmgrinfo_appinfo_is_taskmanage(handle, &taskmanage); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("preload: %d\n", preload); + printf("app taskmanage: %d\n", taskmanage); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_is_preload(pkgmgrinfo_appinfo_h handle, bool *preload); +int pkgmgrinfo_appinfo_is_taskmanage(pkgmgrinfo_appinfo_h handle, bool *taskmanage); /** - * @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_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[out] submode pointer to hold submode is or not + * @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 @@ -3887,1425 +4556,1371 @@ 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_enabled(const char *appid) { int ret = 0; - bool submode = 0; - pkgmgrinfo_appinfo_h handle = NULL; + bool enabled; + pkgmgrinfo_appinfo_h handle; ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_appinfo_is_submode(handle, &submode); + ret = pkgmgrinfo_appinfo_is_taskmanage(handle, &enabled); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("submode: %d\n", submode); + printf("app enabled: %d\n", enabled); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_is_submode(pkgmgrinfo_appinfo_h handle, bool *submode); +int pkgmgrinfo_appinfo_is_enabled(pkgmgrinfo_appinfo_h handle, bool *enabled); /** - * @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_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[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 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 pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() + * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int is_category_exist(const char *appid, const char *category) +static int get_app_onboot(const char *appid) { int ret = 0; + bool onboot; 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_is_onboot(handle, &onboot); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - + printf("app onboot: %d\n", onboot); 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_is_onboot(pkgmgrinfo_appinfo_h handle, bool *onboot); /** - * @fn int pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo_h handle) - * @brief This API destroys the application information 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 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 None - * @see pkgmgrinfo_appinfo_get_pkgid() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_app_type(const char *appid) +static int get_app_autorestart(const char *appid) { int ret = 0; - char *type = NULL; + bool autorestart; 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_autorestart(handle, &autorestart); if (ret != PMINFO_R_OK) { pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("apptype: %s\n", type); + printf("app autorestart: %d\n", autorestart); pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo_h handle); +int pkgmgrinfo_appinfo_is_autorestart(pkgmgrinfo_appinfo_h handle, bool *autorestart); /** - * @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_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[out] handle pointer to the application info filter handle. + * @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 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_mainapp(const char *appid) { int ret = 0; - int count = 0; - pkgmgrinfo_appinfo_filter_h handle; - ret = pkgmgrinfo_appinfo_filter_create(&handle); + bool mainapp; + 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_mainapp(handle, &mainapp); 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("mainapp: %d\n", mainapp); + pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_filter_create(pkgmgrinfo_appinfo_filter_h *handle); +int pkgmgrinfo_appinfo_is_mainapp(pkgmgrinfo_appinfo_h handle, bool *mainapp); + /** - * @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_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 the application info filter handle. + * @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_filter_create() - * @post None - * @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_preload(const char *appid) { int ret = 0; - int count = 0; - pkgmgrinfo_appinfo_filter_h handle; - ret = pkgmgrinfo_appinfo_filter_create(&handle); + 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_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_preload(handle, &preload); 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("preload: %d\n", preload); + pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_filter_destroy(pkgmgrinfo_appinfo_filter_h handle); +int pkgmgrinfo_appinfo_is_preload(pkgmgrinfo_appinfo_h handle, bool *preload); /** - * @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_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 the application info filter handle. - * @param[in] property boolean property name. - * @param[in] value value corresponding to the property. + * @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_filter_create() - * @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_taskmanageable_app_count() +static int get_app_submode(const char *appid) { int ret = 0; - int count = 0; - pkgmgrinfo_appinfo_filter_h handle; - ret = pkgmgrinfo_appinfo_filter_create(&handle); + 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_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); + ret = pkgmgrinfo_appinfo_is_submode(handle, &submode); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_filter_destroy(handle); + pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("No of taskmanageable apps: %d\n", count); - pkgmgrinfo_appinfo_filter_destroy(handle); + printf("submode: %d\n", submode); + pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_filter_add_bool(pkgmgrinfo_appinfo_filter_h handle, - const char *property, const bool value); +int pkgmgrinfo_appinfo_is_submode(pkgmgrinfo_appinfo_h handle, bool *submode); /** - * @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 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 the application info filter handle. - * @param[in] property integer property name. - * @param[in] value value corresponding to the property. + * @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_filter_create() - * @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() * @code -static int get_taskmanageable_app_count() +static int get_app_process_pool(const char *appid) { int ret = 0; - int count = 0; - pkgmgrinfo_appinfo_filter_h handle; - ret = pkgmgrinfo_appinfo_filter_create(&handle); + 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_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); + ret = pkgmgrinfo_appinfo_is_process_pool(handle, &process_pool); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_filter_destroy(handle); + pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("No of apps: %d\n", count); - pkgmgrinfo_appinfo_filter_destroy(handle); + printf("process_pool: %d\n", process_pool); + pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_filter_add_int(pkgmgrinfo_appinfo_filter_h handle, - const char *property, const int value); +int pkgmgrinfo_appinfo_is_process_pool(pkgmgrinfo_appinfo_h handle, bool *process_pool); /** - * @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_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 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 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_filter_create() - * @post pkgmgrinfo_appinfo_filter_destroy() - * @see pkgmgrinfo_appinfo_filter_count() - * @see pkgmgrinfo_appinfo_filter_foreach_appinfo() + * @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_capp_count() +static int get_app_installed_location(const char *appid) { int ret = 0; - int count = 0; - pkgmgrinfo_appinfo_filter_h handle; - ret = pkgmgrinfo_appinfo_filter_create(&handle); + 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_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_get_installed_storage_location(handle, &storage); 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("Installed storage location : %d\n", storage); + pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_filter_add_string(pkgmgrinfo_appinfo_filter_h handle, - const char *property, const char *value); +int pkgmgrinfo_appinfo_get_installed_storage_location(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_installed_storage *storage); + /** - * @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_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 filter handle. - * @param[in] app_cb callback function. - * @param[in] user_data user data to be passed to the callback function + * @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 - * @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() +static int is_category_exist(const char *appid, const char *category) { int ret = 0; - pkgmgrinfo_appinfo_filter_h handle; - ret = pkgmgrinfo_appinfo_filter_create(&handle); + pkgmgrinfo_appinfo_h handle; + bool exist = false; + + 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_foreach_appinfo(handle, app_list_cb, NULL); + + ret = pkgmgrinfo_appinfo_is_category_exist(handle, category, &exist); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_filter_destroy(handle); + pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - pkgmgrinfo_appinfo_filter_destroy(handle); + + pkgmgrinfo_appinfo_destroy_appinfo(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_appinfo_is_category_exist(pkgmgrinfo_appinfo_h handle, const char *category, bool *exist); /** - * @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_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 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 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 - * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_filter_create() - * @post pkgmgrinfo_appinfo_filter_destroy() - * @see pkgmgrinfo_appinfo_filter_foreach_appinfo() + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() * @code -static int get_capp_count() +static int get_app_ui_gadget(const char *appid) { int ret = 0; - int count = 0; - pkgmgrinfo_appinfo_filter_h handle; - ret = pkgmgrinfo_appinfo_filter_create(&handle); + 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_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_ui_gadget(handle, &ui_gadget); 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 ui_gadget: %d\n", ui_gadget); + pkgmgrinfo_appinfo_destroy_appinfo(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_appinfo_is_ui_gadget(pkgmgrinfo_appinfo_h handle, bool *ui_gadget); + /** - * @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_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[out] handle pointer to the application metadata info filter handle. + * @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 - * @retval PMINFO_R_ERROR internal error - * @pre None - * @post pkgmgrinfo_appinfo_metadata_filter_destroy() - * @see pkgmgrinfo_appinfo_metadata_filter_foreach() + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() * @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) +static int get_app_support_disable(const char *appid) { int ret = 0; - pkgmgrinfo_appinfo_metadata_filter_h handle; - ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle); + 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_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_appinfo_is_support_disable(handle, &support_disable); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + printf("app support_disable: %d\n", support_disable); + pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_metadata_filter_create(pkgmgrinfo_appinfo_metadata_filter_h *handle); +int pkgmgrinfo_appinfo_is_support_disable(pkgmgrinfo_appinfo_h handle, bool *support_disable); /** - * @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_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 the application metadata info filter handle. + * @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_metadata_filter_create() - * @post None - * @see pkgmgrinfo_appinfo_metadata_filter_foreach() + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() * @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) +static int get_app_removable(const char *appid) { int ret = 0; - pkgmgrinfo_appinfo_metadata_filter_h handle; - ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle); + bool removable; + pkgmgrinfo_appinfo_h handle = NULL; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &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_appinfo_is_removable(handle, &removable); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + printf("app removable: %d\n", removable); + pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_metadata_filter_destroy(pkgmgrinfo_appinfo_metadata_filter_h handle); +int pkgmgrinfo_appinfo_is_removable(pkgmgrinfo_appinfo_h handle, bool *removable); /** - * @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_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 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 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_metadata_filter_create() - * @post pkgmgrinfo_appinfo_metadata_filter_foreach(), pkgmgrinfo_appinfo_metadata_filter_destroy() - * @see pkgmgrinfo_appinfo_metadata_filter_foreach() + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() + * @see pkgmgrinfo_appinfo_get_appid() * @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) +static int get_app_system(const char *appid) { int ret = 0; - pkgmgrinfo_appinfo_metadata_filter_h handle; - ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle); + 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_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_appinfo_is_system(handle, &system); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + printf("app system: %d\n", system); + pkgmgrinfo_appinfo_destroy_appinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_appinfo_metadata_filter_add(pkgmgrinfo_appinfo_metadata_filter_h handle, - const char *key, const char *value); +int pkgmgrinfo_appinfo_is_system(pkgmgrinfo_appinfo_h handle, bool *system); + /** - * @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_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 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] 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 - * @retval PMINFO_R_ERROR internal error - * @pre pkgmgrinfo_appinfo_metadata_filter_create() - * @post pkgmgrinfo_appinfo_metadata_filter_destroy() + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post pkgmgrinfo_appinfo_destroy_appinfo() * @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) +static int get_app_is_disable(const char *appid) { int ret = 0; - pkgmgrinfo_appinfo_metadata_filter_h handle; - ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle); + 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_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_appinfo_is_disabled(handle, &is_disable); if (ret != PMINFO_R_OK) { - pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - pkgmgrinfo_appinfo_metadata_filter_destroy(handle); + printf("app is_disable: %d\n", is_disable); + pkgmgrinfo_appinfo_destroy_appinfo(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_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 + * + * @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_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_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[out] handle pointer to the package cert handle. + * @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 - * @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); +int pkgmgrinfo_appinfo_get_setup_appid(pkgmgrinfo_appinfo_h handle, char **setup_appid); /** - * @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_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] pkgid pointer to the package ID. - * @param[in] handle pointer to the package cert handle. + * @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 - * @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); +int pkgmgrinfo_appinfo_is_support_ambient(pkgmgrinfo_appinfo_h handle, bool *support_ambient); /** - * @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_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 package cert handle. - * @param[in] cert_type certificate type - * @param[out] cert_value pointer to hold certificate value + * @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_pkginfo_create_certinfo() - * @post pkgmgrinfo_pkginfo_destroy_certinfo() - * @see pkgmgrinfo_pkginfo_load_certinfo() + * @pre pkgmgrinfo_appinfo_get_appinfo() + * @post None + * @see pkgmgrinfo_appinfo_get_pkgid() + * @see pkgmgrinfo_appinfo_is_multiple() * @code -static int get_cert_info(const char *pkgid) +static int get_app_type(const char *appid) { int ret = 0; - pkgmgrinfo_certinfo_h handle; - char *auth_cert = NULL; - ret = pkgmgrinfo_pkginfo_create_certinfo(&handle); + char *type = NULL; + pkgmgrinfo_appinfo_h handle; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &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_appinfo_get_apptype(handle, &type); if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_certinfo(handle); + pkgmgrinfo_appinfo_destroy_appinfo(handle); return -1; } - printf("Author root certificate: %s\n", auth_root); - pkgmgrinfo_pkginfo_destroy_certinfo(handle); + printf("apptype: %s\n", type); + pkgmgrinfo_appinfo_destroy_appinfo(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_appinfo_destroy_appinfo(pkgmgrinfo_appinfo_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_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[in] handle pointer to the package cert handle. + * @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 pkgmgrinfo_pkginfo_create_certinfo() - * @post None - * @see pkgmgrinfo_pkginfo_load_certinfo() + * @pre None + * @post pkgmgrinfo_appinfo_filter_destroy() + * @see pkgmgrinfo_appinfo_filter_count() + * @see pkgmgrinfo_appinfo_filter_foreach_appinfo() * @code -static int get_cert_info(const char *pkgid) +static int get_capp_count() { int ret = 0; - pkgmgrinfo_certinfo_h handle; - char *auth_cert = NULL; - ret = pkgmgrinfo_pkginfo_create_certinfo(&handle); + int count = 0; + pkgmgrinfo_appinfo_filter_h handle; + ret = pkgmgrinfo_appinfo_filter_create(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle); + ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp"); if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_certinfo(handle); + pkgmgrinfo_appinfo_filter_destroy(handle); return -1; } - ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert); + ret = pkgmgrinfo_appinfo_filter_count(handle, &count); if (ret != PMINFO_R_OK) { - pkgmgrinfo_pkginfo_destroy_certinfo(handle); + pkgmgrinfo_appinfo_filter_destroy(handle); return -1; } - printf("Author root certificate: %s\n", auth_root); - pkgmgrinfo_pkginfo_destroy_certinfo(handle); + printf("No of capp: %d\n", count); + pkgmgrinfo_appinfo_filter_destroy(handle); return 0; } * @endcode */ -int pkgmgrinfo_pkginfo_destroy_certinfo(pkgmgrinfo_certinfo_h handle); +int pkgmgrinfo_appinfo_filter_create(pkgmgrinfo_appinfo_filter_h *handle); /** - * @fn int pkgmgrinfo_delete_certinfo(const char *pkgid) - * @brief This API deletes the package cert information from DB + * @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] pkgid pointer to the package ID. + * @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 None + * @pre pkgmgrinfo_appinfo_filter_create() * @post None + * @see pkgmgrinfo_appinfo_filter_count() + * @see pkgmgrinfo_appinfo_filter_foreach_appinfo() * @code -static int delete_cert_info(const char *pkgid) +static int get_capp_count() { int ret = 0; - ret = pkgmgrinfo_delete_certinfo(pkgid); + 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_delete_certinfo(const char *pkgid); - int pkgmgrinfo_delete_usr_certinfo(const char *pkgid, uid_t uid); +int pkgmgrinfo_appinfo_filter_destroy(pkgmgrinfo_appinfo_filter_h handle); + /** - * @fn int pkgmgrinfo_create_pkgdbinfo(const char *pkgid, pkgmgrinfo_pkgdbinfo_h *handle) - * @fn int pkgmgrinfo_create_pkgusrdbinfo(const char *pkgid, pkgmgrinfo_pkgdbinfo_h *handle) - * @brief This API creates the package db information handle to set data in db. + * @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] pkgid pointer to the package ID. - * @param[in] uid the addressee user id of the instruction - * @param[out] handle pointer to the package db info handle. + * @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 None - * @post pkgmgrinfo_destroy_pkgdbinfo() - * @see pkgmgrinfo_save_pkgdbinfo() - * @see pkgmgrinfo_set_type_to_pkgdbinfo() + * @pre pkgmgrinfo_appinfo_filter_create() + * @post pkgmgrinfo_appinfo_filter_destroy() + * @see pkgmgrinfo_appinfo_filter_count() + * @see pkgmgrinfo_appinfo_filter_foreach_appinfo() * @code -static int set_pkg_in_db(const char *pkgid) +static int get_taskmanageable_app_count() { int ret = 0; - pkgmgrinfo_pkgdbinfo_h handle; - ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle); + int count = 0; + pkgmgrinfo_appinfo_filter_h handle; + ret = pkgmgrinfo_appinfo_filter_create(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_set_version_to_pkgdbinfo(handle, "0.0.1"); + ret = pkgmgrinfo_appinfo_filter_add_bool(handle, PMINFO_APPINFO_PROP_APP_TASKMANAGE, 1); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_filter_destroy(handle); return -1; } - ret = pkgmgrinfo_save_pkgdbinfo(handle); + ret = pkgmgrinfo_appinfo_filter_count(handle, &count); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_filter_destroy(handle); return -1; } - pkgmgrinfo_destroy_pkgdbinfo(handle); + printf("No of taskmanageable apps: %d\n", count); + pkgmgrinfo_appinfo_filter_destroy(handle); return 0; } * @endcode */ -int pkgmgrinfo_create_pkgdbinfo(const char *pkgid, pkgmgrinfo_pkgdbinfo_h *handle); -int pkgmgrinfo_create_pkgusrdbinfo(const char *pkgid, uid_t uid, pkgmgrinfo_pkgdbinfo_h *handle); +int pkgmgrinfo_appinfo_filter_add_bool(pkgmgrinfo_appinfo_filter_h handle, + const char *property, const bool value); /** - * @fn int pkgmgrinfo_set_type_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *type) - * @brief This API sets the package type in db 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 * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the pkgdbinfo handle. - * @param[in] type pointer to the package type. + * @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_create_pkgdbinfo() - * @post pkgmgrinfo_destroy_pkgdbinfo() - * @see pkgmgrinfo_save_pkgdbinfo() - * @see pkgmgrinfo_set_version_to_pkgdbinfo() + * @pre pkgmgrinfo_appinfo_filter_create() + * @post pkgmgrinfo_appinfo_filter_destroy() + * @see pkgmgrinfo_appinfo_filter_count() + * @see pkgmgrinfo_appinfo_filter_foreach_appinfo() * @code -static int set_pkg_type_in_db(const char *pkgid) +static int get_taskmanageable_app_count() { int ret = 0; - pkgmgrinfo_pkgdbinfo_h handle; - ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle); + int count = 0; + pkgmgrinfo_appinfo_filter_h handle; + ret = pkgmgrinfo_appinfo_filter_create(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_set_type_to_pkgdbinfo(handle, "wgt"); + ret = pkgmgrinfo_appinfo_filter_add_bool(handle, PMINFO_APPINFO_PROP_APP_XXX, 10); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_filter_destroy(handle); return -1; } - ret = pkgmgrinfo_save_pkgdbinfo(handle); + ret = pkgmgrinfo_appinfo_filter_count(handle, &count); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_filter_destroy(handle); return -1; } - pkgmgrinfo_destroy_pkgdbinfo(handle); + printf("No of apps: %d\n", count); + pkgmgrinfo_appinfo_filter_destroy(handle); return 0; } * @endcode */ -int pkgmgrinfo_set_type_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *type); +int pkgmgrinfo_appinfo_filter_add_int(pkgmgrinfo_appinfo_filter_h handle, + const char *property, const int value); /** - * @fn int pkgmgrinfo_set_version_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *version) - * @brief This API sets the package version in db 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 * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the pkgdbinfo handle. - * @param[in] version pointer to the package version + * @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_create_pkgdbinfo() - * @post pkgmgrinfo_destroy_pkgdbinfo() - * @see pkgmgrinfo_save_pkgdbinfo() - * @see pkgmgrinfo_set_type_to_pkgdbinfo() + * @pre pkgmgrinfo_appinfo_filter_create() + * @post pkgmgrinfo_appinfo_filter_destroy() + * @see pkgmgrinfo_appinfo_filter_count() + * @see pkgmgrinfo_appinfo_filter_foreach_appinfo() * @code -static int set_pkg_version_in_db(const char *pkgid) +static int get_capp_count() { int ret = 0; - pkgmgrinfo_pkgdbinfo_h handle; - ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle); + int count = 0; + pkgmgrinfo_appinfo_filter_h handle; + ret = pkgmgrinfo_appinfo_filter_create(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_set_version_to_pkgdbinfo(handle, "0.0.1"); + ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp"); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_filter_destroy(handle); return -1; } - ret = pkgmgrinfo_save_pkgdbinfo(handle); + ret = pkgmgrinfo_appinfo_filter_count(handle, &count); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_filter_destroy(handle); return -1; } - pkgmgrinfo_destroy_pkgdbinfo(handle); + printf("No of capp: %d\n", count); + pkgmgrinfo_appinfo_filter_destroy(handle); return 0; } * @endcode */ -int pkgmgrinfo_set_version_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *version); +int pkgmgrinfo_appinfo_filter_add_string(pkgmgrinfo_appinfo_filter_h handle, + const char *property, const char *value); /** - * @fn int pkgmgrinfo_set_install_location_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, INSTALL_LOCATION location) - * @brief This API sets the package install location in db handle + * @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 pkgdbinfo handle. - * @param[in] location package install location + * @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_create_pkgdbinfo() - * @post pkgmgrinfo_destroy_pkgdbinfo() - * @see pkgmgrinfo_save_pkgdbinfo() - * @see pkgmgrinfo_set_type_to_pkgdbinfo() + * @pre pkgmgrinfo_appinfo_filter_create() + * @post pkgmgrinfo_appinfo_filter_destroy() + * @see pkgmgrinfo_appinfo_filter_count() * @code -static int set_pkg_install_location_in_db(const char *pkgid) +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_pkgdbinfo_h handle; - ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle); + pkgmgrinfo_appinfo_filter_h handle; + ret = pkgmgrinfo_appinfo_filter_create(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_set_install_location_to_pkgdbinfo(handle, INSTALL_INTERNAL); + ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp"); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_filter_destroy(handle); return -1; } - ret = pkgmgrinfo_save_pkgdbinfo(handle); + ret = pkgmgrinfo_appinfo_filter_foreach_appinfo(handle, app_list_cb, NULL); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_filter_destroy(handle); return -1; } - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_filter_destroy(handle); return 0; } * @endcode */ -int pkgmgrinfo_set_install_location_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, INSTALL_LOCATION location); +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_set_size_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *size) - * @brief This API sets the package size in db handle + * @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 pkgdbinfo handle. - * @param[in] size pointer to the package size + * @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_create_pkgdbinfo() - * @post pkgmgrinfo_destroy_pkgdbinfo() - * @see pkgmgrinfo_save_pkgdbinfo() - * @see pkgmgrinfo_set_type_to_pkgdbinfo() + * @pre pkgmgrinfo_appinfo_filter_create() + * @post pkgmgrinfo_appinfo_filter_destroy() + * @see pkgmgrinfo_appinfo_filter_foreach_appinfo() * @code -static int set_pkg_size_in_db(const char *pkgid) +static int get_capp_count() { int ret = 0; - pkgmgrinfo_pkgdbinfo_h handle; - ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle); + int count = 0; + pkgmgrinfo_appinfo_filter_h handle; + ret = pkgmgrinfo_appinfo_filter_create(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_set_size_to_pkgdbinfo(handle, "15"); + ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp"); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_filter_destroy(handle); return -1; } - ret = pkgmgrinfo_save_pkgdbinfo(handle); + ret = pkgmgrinfo_appinfo_filter_count(handle, &count); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_filter_destroy(handle); return -1; } - pkgmgrinfo_destroy_pkgdbinfo(handle); + printf("No of capp: %d\n", count); + pkgmgrinfo_appinfo_filter_destroy(handle); return 0; } * @endcode */ -int pkgmgrinfo_set_size_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *size); - +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_set_label_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *label, const char *locale) - * @brief This API sets the package label in db 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. * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the pkgdbinfo handle. - * @param[in] label pointer to the package label - * @param[in] locale pointer to the locale + * @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 pkgmgrinfo_create_pkgdbinfo() - * @post pkgmgrinfo_destroy_pkgdbinfo() - * @see pkgmgrinfo_save_pkgdbinfo() - * @see pkgmgrinfo_set_type_to_pkgdbinfo() + * @pre None + * @post pkgmgrinfo_appinfo_metadata_filter_destroy() + * @see pkgmgrinfo_appinfo_metadata_filter_foreach() * @code -static int set_pkg_label_in_db(const char *pkgid) +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_pkgdbinfo_h handle; - ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle); + pkgmgrinfo_appinfo_metadata_filter_h handle; + ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_set_label_to_pkgdbinfo(handle, "helloworld", "en-us"); + ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); return -1; } - ret = pkgmgrinfo_save_pkgdbinfo(handle); + ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); return -1; } - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); return 0; } * @endcode */ -int pkgmgrinfo_set_label_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *label, const char *locale); +int pkgmgrinfo_appinfo_metadata_filter_create(pkgmgrinfo_appinfo_metadata_filter_h *handle); /** - * @fn int pkgmgrinfo_set_icon_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *icon, const char *locale) - * @brief This API sets the package icon in db 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 pkgdbinfo handle. - * @param[in] icon pointer to the package icon - * @param[in] locale pointer to the locale + * @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_create_pkgdbinfo() - * @post pkgmgrinfo_destroy_pkgdbinfo() - * @see pkgmgrinfo_save_pkgdbinfo() - * @see pkgmgrinfo_set_type_to_pkgdbinfo() + * @pre pkgmgrinfo_appinfo_metadata_filter_create() + * @post None + * @see pkgmgrinfo_appinfo_metadata_filter_foreach() * @code -static int set_pkg_icon_in_db(const char *pkgid) +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_pkgdbinfo_h handle; - ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle); + pkgmgrinfo_appinfo_metadata_filter_h handle; + ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_set_icon_to_pkgdbinfo(handle, "helloworld.png", "en-us"); + ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); return -1; } - ret = pkgmgrinfo_save_pkgdbinfo(handle); + ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); return -1; } - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); return 0; } * @endcode */ -int pkgmgrinfo_set_icon_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *icon, const char *locale); +int pkgmgrinfo_appinfo_metadata_filter_destroy(pkgmgrinfo_appinfo_metadata_filter_h handle); /** - * @fn int pkgmgrinfo_set_description_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *description, const char *locale) - * @brief This API sets the package description in db 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 pkgdbinfo handle. - * @param[in] description pointer to the package description - * @param[in] locale pointer to the locale + * @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_create_pkgdbinfo() - * @post pkgmgrinfo_destroy_pkgdbinfo() - * @see pkgmgrinfo_save_pkgdbinfo() - * @see pkgmgrinfo_set_type_to_pkgdbinfo() + * @pre pkgmgrinfo_appinfo_metadata_filter_create() + * @post pkgmgrinfo_appinfo_metadata_filter_foreach(), pkgmgrinfo_appinfo_metadata_filter_destroy() + * @see pkgmgrinfo_appinfo_metadata_filter_foreach() * @code -static int set_pkg_description_in_db(const char *pkgid) +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_pkgdbinfo_h handle; - ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle); + pkgmgrinfo_appinfo_metadata_filter_h handle; + ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_set_description_to_pkgdbinfo(handle, "helloworld application", "en-us"); + ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); return -1; } - ret = pkgmgrinfo_save_pkgdbinfo(handle); + ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); return -1; } - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); return 0; } * @endcode */ -int pkgmgrinfo_set_description_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *description, const char *locale); +int pkgmgrinfo_appinfo_metadata_filter_add(pkgmgrinfo_appinfo_metadata_filter_h handle, + const char *key, const char *value); /** - * @fn int pkgmgrinfo_set_author_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *author_name, - const char *author_email, const char *author_href, const char *locale) - * @brief This API sets the package author info in db handle + * @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 pkgdbinfo handle. - * @param[in] author_name pointer to the package author name - * @param[in] author_email pointer to the package author email - * @param[in] author_href pointer to the package author href - * @param[in] locale pointer to the locale + * @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_create_pkgdbinfo() - * @post pkgmgrinfo_destroy_pkgdbinfo() - * @see pkgmgrinfo_save_pkgdbinfo() - * @see pkgmgrinfo_set_type_to_pkgdbinfo() + * @pre pkgmgrinfo_appinfo_metadata_filter_create() + * @post pkgmgrinfo_appinfo_metadata_filter_destroy() * @code -static int set_pkg_author_in_db(const char *pkgid) +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_pkgdbinfo_h handle; - ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle); + pkgmgrinfo_appinfo_metadata_filter_h handle; + ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_set_author_to_pkgdbinfo(handle, "John", "john@samsung.com", "www.samsung.com", "en-us"); + ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); return -1; } - ret = pkgmgrinfo_save_pkgdbinfo(handle); + ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); return -1; } - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_appinfo_metadata_filter_destroy(handle); return 0; } * @endcode */ -int pkgmgrinfo_set_author_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *author_name, - const char *author_email, const char *author_href, const char *locale); - +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_set_removable_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, int removable) - * @brief This API sets the package 'removable' value in db handle + * @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[in] handle pointer to the pkgdbinfo handle. - * @param[in] removable package removable value + * @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 pkgmgrinfo_create_pkgdbinfo() - * @post pkgmgrinfo_destroy_pkgdbinfo() - * @see pkgmgrinfo_save_pkgdbinfo() - * @see pkgmgrinfo_set_type_to_pkgdbinfo() + * @pre None + * @post pkgmgrinfo_pkginfo_destroy_certinfo() + * @see pkgmgrinfo_pkginfo_get_cert_value() + * @see pkgmgrinfo_pkginfo_load_certinfo() * @code -static int set_pkg_removable_in_db(const char *pkgid) +static int get_cert_info(const char *pkgid) { int ret = 0; - pkgmgrinfo_pkgdbinfo_h handle; - ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle); + pkgmgrinfo_certinfo_h handle; + char *auth_cert = NULL; + ret = pkgmgrinfo_pkginfo_create_certinfo(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_set_removable_to_pkgdbinfo(handle, 1); + ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_pkginfo_destroy_certinfo(handle); return -1; } - ret = pkgmgrinfo_save_pkgdbinfo(handle); + ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_pkginfo_destroy_certinfo(handle); return -1; } - pkgmgrinfo_destroy_pkgdbinfo(handle); + printf("Author root certificate: %s\n", auth_root); + pkgmgrinfo_pkginfo_destroy_certinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_set_removable_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, int removable); +int pkgmgrinfo_pkginfo_create_certinfo(pkgmgrinfo_certinfo_h *handle); /** - * @fn int pkgmgrinfo_set_preload_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, int preload) - * @brief This API sets the package 'preload' value in db 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] handle pointer to the pkgdbinfo handle. - * @param[in] preload package preload value + * @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_create_pkgdbinfo() - * @post pkgmgrinfo_destroy_pkgdbinfo() - * @see pkgmgrinfo_save_pkgdbinfo() - * @see pkgmgrinfo_set_type_to_pkgdbinfo() + * @pre pkgmgrinfo_pkginfo_create_certinfo() + * @post pkgmgrinfo_pkginfo_destroy_certinfo() + * @see pkgmgrinfo_pkginfo_get_cert_value() * @code -static int set_pkg_preload_in_db(const char *pkgid) +static int get_cert_info(const char *pkgid) { int ret = 0; - pkgmgrinfo_pkgdbinfo_h handle; - ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle); + pkgmgrinfo_certinfo_h handle; + char *auth_cert = NULL; + ret = pkgmgrinfo_pkginfo_create_certinfo(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_set_preload_to_pkgdbinfo(handle, 1); + ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_pkginfo_destroy_certinfo(handle); return -1; } - ret = pkgmgrinfo_save_pkgdbinfo(handle); + ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_pkginfo_destroy_certinfo(handle); return -1; } - pkgmgrinfo_destroy_pkgdbinfo(handle); + printf("Author root certificate: %s\n", auth_root); + pkgmgrinfo_pkginfo_destroy_certinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_set_preload_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, int preload); +int pkgmgrinfo_pkginfo_load_certinfo(const char *pkgid, pkgmgrinfo_certinfo_h handle, uid_t uid); /** - * @fn int pkgmgrinfo_set_installed_storage_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, INSTALL_LOCATION location) - * @brief This API sets the package 'installed_storage' value in db 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 * * @par This API is for package-manager client application * @par Sync (or) Async : Synchronous API * - * @param[in] handle pointer to the pkgdbinfo handle. - * @param[in] location installed_storage value + * @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_create_pkgdbinfo() - * @post pkgmgrinfo_destroy_pkgdbinfo() - * @see pkgmgrinfo_save_pkgdbinfo() + * @pre pkgmgrinfo_pkginfo_create_certinfo() + * @post pkgmgrinfo_pkginfo_destroy_certinfo() + * @see pkgmgrinfo_pkginfo_load_certinfo() * @code -static int set_pkg_installed_storage_in_db(const char *pkgid) +static int get_cert_info(const char *pkgid) { int ret = 0; - pkgmgrinfo_pkgdbinfo_h handle; - ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle); + pkgmgrinfo_certinfo_h handle; + char *auth_cert = NULL; + ret = pkgmgrinfo_pkginfo_create_certinfo(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_set_installed_storage_to_pkgdbinfo(handle, INSTALL_INTERNAL); + ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_pkginfo_destroy_certinfo(handle); return -1; } - ret = pkgmgrinfo_save_pkgdbinfo(handle); + ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_pkginfo_destroy_certinfo(handle); return -1; } - pkgmgrinfo_destroy_pkgdbinfo(handle); + printf("Author root certificate: %s\n", auth_root); + pkgmgrinfo_pkginfo_destroy_certinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_set_installed_storage_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, INSTALL_LOCATION location); +int pkgmgrinfo_pkginfo_get_cert_value(pkgmgrinfo_certinfo_h handle, pkgmgrinfo_cert_type cert_type, const char **cert_value); /** - * @fn int pkgmgrinfo_save_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle) - * @fn int pkgmgrinfo_save_pkgdbusrinfo(pkgmgrinfo_pkgdbinfo_h handle, uid_t uid) - * @brief This API saves all the information from the handle to the DB. + * @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 package db info handle. - * @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_create_pkgdbinfo() - * @post pkgmgrinfo_destroy_pkgdbinfo() - * @see pkgmgrinfo_set_type_to_pkgdbinfo() + * @pre pkgmgrinfo_pkginfo_create_certinfo() + * @post None + * @see pkgmgrinfo_pkginfo_load_certinfo() * @code -static int set_pkg_in_db(const char *pkgid) +static int get_cert_info(const char *pkgid) { int ret = 0; - pkgmgrinfo_pkgdbinfo_h handle; - ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle); + pkgmgrinfo_certinfo_h handle; + char *auth_cert = NULL; + ret = pkgmgrinfo_pkginfo_create_certinfo(&handle); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_set_version_to_pkgdbinfo(handle, "0.0.1"); + ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_pkginfo_destroy_certinfo(handle); return -1; } - ret = pkgmgrinfo_save_pkgdbinfo(handle); + ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert); if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); + pkgmgrinfo_pkginfo_destroy_certinfo(handle); return -1; } - pkgmgrinfo_destroy_pkgdbinfo(handle); + printf("Author root certificate: %s\n", auth_root); + pkgmgrinfo_pkginfo_destroy_certinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_save_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle); -int pkgmgrinfo_save_pkgusrdbinfo(pkgmgrinfo_pkgdbinfo_h handle, uid_t uid); +int pkgmgrinfo_pkginfo_destroy_certinfo(pkgmgrinfo_certinfo_h handle); + /** - * @fn int pkgmgrinfo_destroy_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle) - * @brief This API destroys the package db information handle freeing up all the resources + * @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 package db info handle. + * @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_create_pkgdbinfo() + * @pre None * @post None - * @see pkgmgrinfo_save_pkgdbinfo() - * @see pkgmgrinfo_set_type_to_pkgdbinfo() * @code -static int set_pkg_in_db(const char *pkgid) +static int delete_cert_info(const char *pkgid) { int ret = 0; - pkgmgrinfo_pkgdbinfo_h handle; - ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle); + ret = pkgmgrinfo_delete_certinfo(pkgid); if (ret != PMINFO_R_OK) return -1; - ret = pkgmgrinfo_set_version_to_pkgdbinfo(handle, "0.0.1"); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); - return -1; - } - ret = pkgmgrinfo_save_pkgdbinfo(handle); - if (ret != PMINFO_R_OK) { - pkgmgrinfo_destroy_pkgdbinfo(handle); - return -1; - } - pkgmgrinfo_destroy_pkgdbinfo(handle); return 0; } * @endcode */ -int pkgmgrinfo_destroy_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle); - +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) @@ -5527,83 +6142,56 @@ 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 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; - 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); + + ret = pkgmgrinfo_pkginfo_set_installed_storage(handle, INSTALL_EXTERNAL); 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); -/** - * @pkgmgrinfo client API -**/ +* @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 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 +/* version compare */ +int pkgmgrinfo_compare_package_version(const char *current_version, + const char *target_version, pkgmgrinfo_version_compare_type *res); /** - * @brief type definition. + * @brief TEMP */ -typedef void pkgmgrinfo_client; -typedef int (*pkgmgrinfo_handler)(int req_id, const char *pkg_type, - const char *pkgid, const char *key, - const char *val, const void *pmsg, void *data); - -typedef enum { - PMINFO_REQUEST = 0, - PMINFO_LISTENING, - PMINFO_BROADCAST, -}pkgmgrinfo_client_type; -/** - * @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_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); /** * @pkgmgrinfo client API end