return pkgmgrinfo_pkginfo_is_global(handle, for_all_users);
}
+API int pkgmgrinfo_pkginfo_is_lib(pkgmgrinfo_pkginfo_h handle, bool *lib)
+{
+ pkgmgr_pkginfo_x *info = (pkgmgr_pkginfo_x *)handle;
+
+ retvm_if(handle == NULL, PMINFO_R_EINVAL, "pkginfo handle is NULL\n");
+ retvm_if(lib == NULL, PMINFO_R_EINVAL,
+ "Argument supplied to hold return value is NULL\n");
+
+ if (info->pkg_info == NULL || info->pkg_info->lib == NULL)
+ return PMINFO_R_ERROR;
+
+ *lib = _get_bool_value(info->pkg_info->lib);
+
+ return PMINFO_R_OK;
+}
+
API int pkgmgrinfo_pkginfo_destroy_pkginfo(pkgmgrinfo_pkginfo_h handle)
{
pkgmgr_pkginfo_x *info = (pkgmgr_pkginfo_x *)handle;
pkgmgrinfo_basic_free_dependency(dep);
}
-API int pkgmgrinfo_pkginfo_foreach_depends_on(pkgmgrinfo_pkginfo_h handle,
+/* This API is not exported at the header file */
+API int pkgmgrinfo_pkginfo_foreach_depends_on_by_pkgid(const char *pkgid,
pkgmgrinfo_pkg_dependency_list_cb dependency_cb,
- void *user_data)
+ void *user_data, uid_t uid)
{
int ret;
- pkgmgr_pkginfo_x *info = (pkgmgr_pkginfo_x *)handle;
GList *pkg_list = NULL;
GList *l;
dependency_x *dep;
- if (handle == NULL || dependency_cb == NULL || info->pkg_info == NULL) {
+ if (pkgid == NULL || dependency_cb == NULL) {
LOGE("invalid parameter");
return PMINFO_R_EINVAL;
}
- ret = _pkginfo_get_depends_on(info->uid, info->pkg_info->package, &pkg_list);
+ ret = _pkginfo_get_depends_on(uid, pkgid, &pkg_list);
if (ret != PMINFO_R_OK)
return PMINFO_R_ERROR;
return PMINFO_R_OK;
}
+API int pkgmgrinfo_pkginfo_foreach_depends_on(pkgmgrinfo_pkginfo_h handle,
+ pkgmgrinfo_pkg_dependency_list_cb dependency_cb,
+ void *user_data)
+{
+ pkgmgr_pkginfo_x *info = (pkgmgr_pkginfo_x *)handle;
+
+ if (handle == NULL || dependency_cb == NULL || info->pkg_info == NULL) {
+ LOGE("invalid parameter");
+ return PMINFO_R_EINVAL;
+ }
+
+ return pkgmgrinfo_pkginfo_foreach_depends_on_by_pkgid(
+ info->pkg_info->package, dependency_cb, user_data,
+ info->uid);
+}
+
API int pkgmgrinfo_pkginfo_foreach_res_allowed_package(
pkgmgrinfo_pkginfo_h handle,
pkgmgrinfo_res_allowed_package_list_cb res_allowed_package_cb,
return pkgmgrinfo_pkginfo_usr_metadata_filter_foreach(handle, pkg_cb,
user_data, _getuid());
}
+
+API int pkgmgrinfo_pkginfo_get_metadata_value(
+ pkgmgrinfo_pkginfo_h handle, const char *metadata_key,
+ char **metadata_value)
+{
+ retvm_if(handle == NULL, PMINFO_R_EINVAL, "pkginfo handle is NULL");
+ retvm_if(metadata_key == NULL, PMINFO_R_EINVAL, "metadata_key is NULL");
+ retvm_if(metadata_value == NULL, PMINFO_R_EINVAL,
+ "metadata_value is NULL");
+
+ GList *list_md = NULL;
+ metadata_x *metadata = NULL;
+ pkgmgr_pkginfo_x *info = (pkgmgr_pkginfo_x *)handle;
+
+ list_md = info->pkg_info->metadata;
+
+ for (; list_md; list_md = list_md->next) {
+ metadata = (metadata_x *)list_md->data;
+ if (metadata && metadata->key) {
+ if (strcasecmp(metadata->key, metadata_key) == 0) {
+ if (metadata->value == NULL)
+ *metadata_value = "";
+ else
+ *metadata_value =
+ (char *)metadata->value;
+ return PMINFO_R_OK;
+ }
+ }
+ }
+
+ return PMINFO_R_EINVAL;
+}