void *user_data;
} foreach_updateinfo_context_s;
+typedef struct _foreach_privilege_ {
+ package_info_privilege_info_cb callback;
+ void *user_data;
+} foreach_privilege_s;
+
static int package_info_foreach_updateinfo_cb(const pkgmgrinfo_updateinfo_h handle, void *user_data)
{
foreach_updateinfo_context_s *foreach_updateinfo = user_data;
return PACKAGE_MANAGER_ERROR_NONE;
}
+static int package_info_foreach_privilege_cb(const char *privilege_name, void *user_data)
+{
+ foreach_privilege_s *foreach_privilege = (foreach_privilege_s *)user_data;
+
+ if (!foreach_privilege->callback(privilege_name, foreach_privilege->user_data))
+ return -1;
+ else
+ return 0;
+}
+
API int package_info_foreach_privilege_info(package_info_h package_info, package_info_privilege_info_cb callback, void *user_data)
{
int ret = 0;
+ foreach_privilege_s foreach_privilege = {
+ .callback = callback,
+ .user_data = user_data,
+ };
if (package_info == NULL || callback == NULL)
return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
- ret = pkgmgrinfo_pkginfo_foreach_privilege(package_info->pkgmgr_pkginfo, (pkgmgrinfo_pkg_privilege_list_cb)callback, user_data);
+ ret = pkgmgrinfo_pkginfo_foreach_privilege(package_info->pkgmgr_pkginfo, package_info_foreach_privilege_cb, &foreach_privilege);
return ret;
}