*/
typedef struct package_info_s *package_info_h;
-/**
- * @brief The package update information handle.
- * @since_tizen 4.0
- */
-typedef struct package_update_info_s *package_update_info_h;
/**
* @brief Enumeration for storage type.
PACKAGE_INFO_DISTRIBUTOR2_SIGNER_CERT = 8, /**< Distributor2 Signer Certificate*/
} package_cert_type_e;
-/**
- * @brief Enumeration for package update info type.
- * @since_tizen 4.0
- */
-typedef enum {
- PACKAGE_UPDATEINFO_TYPE_NONE = 0, /**< None type */
- PACKAGE_UPDATEINFO_TYPE_FORCE, /**< Force type */
- PACKAGE_UPDATEINFO_TYPE_OPTIONAL /**< Optional type */
-} package_update_info_type_e;
-
-/**
- * @brief Called for each update information of all packages.
- * @since_tizen 4.0
- * @param[in] package_updateinfo The application update information handle
- * @param[in] user_data The user data passed from the foreach function
- * @return @c true to continue with the next iteration of the loop,
- * otherwise @c false to break out of the loop
- * @pre package_info_updateinfo_foreach_updateinfo() will invoke this callback.
- * @see package_info_updateinfo_foreach_updateinfo()
- */
-typedef bool (*package_info_updateinfo_cb) (package_update_info_h package_updateinfo, void *user_data);
/**
* @brief Called to get the application ID once for each installed package.
*/
int package_info_foreach_privilege_info(package_info_h package_info, package_info_privilege_info_cb callback, void *user_data);
-/**
- * @brief Gets the package update information for the given package.
- * @since_tizen 4.0
- * @remarks You must release @a package_updateinfo using package_info_updateinfo_destroy().
- * @param[in] pkgid The ID of the package
- * @param[out] package_updateinfo The package update information for the given package ID
- * @return @c 0 on success,
- * otherwise a negative error value
- * @retval #PACKAGE_MANAGER_ERROR_NONE Successful
- * @retval #PACKAGE_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #PACKAGE_MANAGER_ERROR_NO_SUCH_PACKAGE The package is not installed
- * @retval #PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #PACKAGE_MANAGER_ERROR_IO_ERROR Database error occurred
- * @see package_info_updateinfo_destroy()
- */
-int package_info_updateinfo_create(const char *pkgid, package_update_info_h *package_updateinfo);
-
-/**
- * @brief Gets the package name.
- * @since_tizen 4.0
- * @remarks You must release @a package using free().
- * @param[in] package_updateinfo The package update information
- * @param[out] package The package name
- * @return @c 0 on success,
- * otherwise a negative error value
- * @retval #PACKAGE_MANAGER_ERROR_NONE Successful
- * @retval #PACKAGE_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #PACKAGE_MANAGER_ERROR_IO_ERROR Internal I/O error occured
- */
-int package_info_updateinfo_get_pkgid(package_update_info_h package_updateinfo, char **package);
-
-/**
- * @brief Gets the update version of package.
- * @since_tizen 4.0
- * @remarks You must release @a version using free().
- * @param[in] package_updateinfo The package update information
- * @param[out] version The package update version
- * @return @c 0 on success,
- * otherwise a negative error value
- * @retval #PACKAGE_MANAGER_ERROR_NONE Successful
- * @retval #PACKAGE_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #PACKAGE_MANAGER_ERROR_IO_ERROR Internal I/O error occured
- */
-int package_info_updateinfo_get_version(package_update_info_h package_updateinfo, char **version);
-
-/**
- * @brief Gets the update type of package.
- * @since_tizen 4.0
- * @param[in] package_updateinfo The package update information
- * @param[out] type The package update type
- * @return @c 0 on success,
- * otherwise a negative error value
- * @retval #PACKAGE_MANAGER_ERROR_NONE Successful
- * @retval #PACKAGE_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #PACKAGE_MANAGER_ERROR_IO_ERROR Internal I/O error occured
- */
-int package_info_updateinfo_get_type(package_update_info_h package_updateinfo, package_update_info_type_e *type);
-
-/**
- * @brief Destroys the package update information handle and releases all its resources.
- * @since_tizen 4.0
- * @param[in] package_updateinfo The package update information handle
- * @return @c 0 on success,
- * otherwise a negative error value
- * @retval #PACKAGE_MANAGER_ERROR_NONE Successful
- * @retval #PACKAGE_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
- * @see package_info_updateinfo_create()
- */
-int package_info_updateinfo_destroy(package_update_info_h package_updateinfo);
-
-/**
- * @brief Retrieve update information of all packages and invoke callback for each of it.
- * @since_tizen 4.0
- * @param[in] callback The iteration callback function
- * @param[in] user_data The user data to be passed to the callback function
- * @return @c 0 on success,
- * otherwise a negative error value
- * @retval #PACKAGE_MANAGER_ERROR_NONE Successful
- * @retval #PACKAGE_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #PACKAGE_MANAGER_ERROR_IO_ERROR I/O error
- */
-int package_info_updateinfo_foreach_updateinfo(package_info_updateinfo_cb callback, void *user_data);
-
/**
* @}
PACKAGE_MANAGER_STATUS_TYPE_GET_SIZE = 0x40, /**< Get size status */
} package_manager_status_type_e;
-/**
- * @brief The Package manager update info request handle.
- * @since_tizen 4.0
- */
-typedef struct package_updateinfo_request_s *package_updateinfo_request_h;
/**
* @brief The Package manager handle.
void *user_data,
int *id);
-/**
- * @platform
- * @brief Creates a package update info request.
- * @since_tizen 4.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/packagemanager.admin
- * @remarks You must release @a handle using package_manager_request_destroy().
- * @param[out] package_updateinfo The package update info request handle that is newly created on success
- * @return @c 0 on success,
- * otherwise a negative error value
- * @retval #PACKAGE_MANAGER_ERROR_NONE Successful
- * @retval #PACKAGE_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #PACKAGE_MANAGER_ERROR_PERMISSION_DENIED Permission denied
- * @see package_manager_updateinfo_request_destroy()
- */
-int package_manager_updateinfo_request_create(package_updateinfo_request_h *package_updateinfo);
-
-/**
- * @brief Sets the package id to the package update info.
- * @since_tizen 4.0
- * @param[in] package_updateinfo The update info request handle
- * @param[in] pkgid The package id to be set
- * @return @c 0 on success,
- * otherwise a negative error value
- * @retval #PACKAGE_MANAGER_ERROR_NONE Successful
- * @retval #PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #PACKAGE_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
- * @see package_manager_updateinfo_request_create()
- */
-int package_manager_updateinfo_set_pkgid(package_updateinfo_request_h package_updateinfo, const char *pkgid);
-
-/**
- * @brief Sets the package version to the package update info.
- * @since_tizen 4.0
- * @param[in] package_updateinfo The update info request handle
- * @param[in] version The package version to be set
- * @return @c 0 on success,
- * otherwise a negative error value
- * @retval #PACKAGE_MANAGER_ERROR_NONE Successful
- * @retval #PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #PACKAGE_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
- * @see package_manager_updateinfo_request_create()
- */
-int package_manager_updateinfo_set_version(package_updateinfo_request_h package_updateinfo, const char *version);
-
-/**
- * @brief Sets the package update type to the package update info.
- * @since_tizen 4.0
- * @param[in] package_updateinfo The update info request handle
- * @param[in] type The package update type to be set
- * @return @c 0 on success,
- * otherwise a negative error value
- * @retval #PACKAGE_MANAGER_ERROR_NONE Successful
- * @retval #PACKAGE_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
- * @see package_manager_updateinfo_request_create()
- * @see package_update_info_type
- */
-int package_manager_updateinfo_set_type(package_updateinfo_request_h package_updateinfo, package_update_info_type_e type);
-
-/**
- * @platform
- * @brief Request to register package update info.
- * @since_tizen 4.0
- * @param[in] package_updateinfo The update info request handle
- * @return @c 0 on success,
- * otherwise a negative error value
- * @retval #PACKAGE_MANAGER_ERROR_NONE Successful
- * @retval #PACKAGE_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #PACKAGE_MANAGER_ERROR_IO_ERROR I/O error
- * @retval #PACKAGE_MANAGER_ERROR_SYSTEM_ERROR Severe system error
- * @see package_manager_updateinfo_request_create()
- * @see package_manager_updateinfo_request_destroy()
- */
-int package_manager_updateinfo_request_register(package_updateinfo_request_h package_updateinfo);
-
-/**
- * @brief Destroys the package update info.
- * @since_tizen 4.0
- * @param[in] package_updateinfo The update info request handle
- * @return @c 0 on success,
- * otherwise a negative error value
- * @retval #PACKAGE_MANAGER_ERROR_NONE Successful
- * @retval #PACKAGE_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
- * @see package_manager_updateinfo_request_create()
- */
-int package_manager_updateinfo_request_destroy(package_updateinfo_request_h package_updateinfo);
-
-/**
- * @platform
- * @brief Request to unregister update info in platform for given package id.
- * @since_tizen 4.0
- * @param[in] package_updateinfo The update info request handle
- * @param[in] pkgid The package id to request unregister update info
- * @return @c 0 on success,
- * otherwise a negative error value
- * @retval #PACKAGE_MANAGER_ERROR_NONE Successful
- * @retval #PACKAGE_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #PACKAGE_MANAGER_ERROR_IO_ERROR I/O error
- * @retval #PACKAGE_MANAGER_ERROR_SYSTEM_ERROR Severe system error
- */
-int package_manager_updateinfo_request_unregister(package_updateinfo_request_h package_updateinfo, const char *pkgid);
-
-/**
- * @platform
- * @brief Request to unregister update info of all packages in platform.
- * @since_tizen 4.0
- * @param[in] package_updateinfo The update info request handle
- * @return @c 0 on success,
- * otherwise a negative error value
- * @retval #PACKAGE_MANAGER_ERROR_NONE Successful
- * @retval #PACKAGE_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #PACKAGE_MANAGER_ERROR_IO_ERROR I/O error
- * @retval #PACKAGE_MANAGER_ERROR_SYSTEM_ERROR Severe system error
- */
-int package_manager_updateinfo_request_unregister_all(package_updateinfo_request_h package_updateinfo);
-
/**
* @}
pkgmgrinfo_certinfo_h pkgmgrinfo_certinfo;
};
-typedef struct package_updateinfo_s {
- pkgmgrinfo_updateinfo_h update_info;
-} package_updateinfo_s;
-
typedef struct _foreach_app_context_ {
package_info_app_cb callback;
void *user_data;
} foreach_app_context_s;
-typedef struct _foreach_updateinfo_ {
- package_info_updateinfo_cb callback;
- void *user_data;
-} foreach_updateinfo_context_s;
-
-static int package_info_foreach_updateinfo_cb(const pkgmgrinfo_updateinfo_h handle, void *user_data)
-{
- foreach_updateinfo_context_s *foreach_updateinfo = user_data;
- bool iteration_next;
-
- if (handle == NULL || foreach_updateinfo == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_IO_ERROR, __FUNCTION__, NULL);
- iteration_next = foreach_updateinfo->callback(handle, foreach_updateinfo->user_data);
- if (iteration_next == true)
- return PMINFO_R_OK;
- else
- return PMINFO_R_ERROR;
-}
-
-static int package_info_updateinfo_convert_type(pkgmgrinfo_updateinfo_update_type type, package_update_info_type_e *converted_type)
-{
- if (type == PMINFO_UPDATEINFO_NONE)
- *converted_type = PACKAGE_UPDATEINFO_TYPE_NONE;
- else if (type == PMINFO_UPDATEINFO_FORCE)
- *converted_type = PACKAGE_UPDATEINFO_TYPE_FORCE;
- else if (type == PMINFO_UPDATEINFO_OPTIONAL)
- *converted_type = PACKAGE_UPDATEINFO_TYPE_OPTIONAL;
- else
- return -1;
-
- return 0;
-}
-
API int package_info_create(const char *package, package_info_h *package_info)
{
package_info_h package_info_created;
return ret;
}
-API int package_info_updateinfo_create(const char *pkgid, package_update_info_h *package_updateinfo)
-{
- int ret;
- package_updateinfo_s *update_info;
-
- if (pkgid == NULL || package_updateinfo == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
-
- update_info = calloc(1, sizeof(package_updateinfo_s));
- if (update_info == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY, __FUNCTION__, NULL);
-
- ret = pkgmgrinfo_updateinfo_get_updateinfo(pkgid, &update_info->update_info);
- if (ret == PMINFO_R_ENOENT) {
- free(update_info);
- return package_manager_error(PACKAGE_MANAGER_ERROR_NO_SUCH_PACKAGE, __FUNCTION__, NULL);
- } else if (ret == PMINFO_R_EINVAL) {
- free(update_info);
- return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
- } else if (ret == PMINFO_R_ERROR) {
- free(update_info);
- return package_manager_error(PACKAGE_MANAGER_ERROR_IO_ERROR, __FUNCTION__, NULL);
- }
-
- *package_updateinfo = update_info;
- return PACKAGE_MANAGER_ERROR_NONE;
-}
-
-API int package_info_updateinfo_get_pkgid(package_update_info_h package_updateinfo, char **package)
-{
- int ret;
- char *pkg_updateinfo_value = NULL;
- char *pkgid_dup;
- package_updateinfo_s *update_info;
-
- if (package == NULL || package_updateinfo == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
-
- update_info = (package_updateinfo_s *)package_updateinfo;
- ret = pkgmgrinfo_updateinfo_get_pkgid(update_info->update_info, &pkg_updateinfo_value);
- if (ret != PMINFO_R_OK || pkg_updateinfo_value == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_IO_ERROR, __FUNCTION__, NULL);
-
- pkgid_dup = strdup(pkg_updateinfo_value);
- if (pkgid_dup == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY, __FUNCTION__, NULL);
-
- *package = pkgid_dup;
- return PACKAGE_MANAGER_ERROR_NONE;
-}
-
-API int package_info_updateinfo_get_version(package_update_info_h package_updateinfo, char **version)
-{
- int ret;
- char *pkg_updateinfo_value = NULL;
- char *ver_dup;
- package_updateinfo_s *update_info;
-
- if (package_updateinfo == NULL || version == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
-
- update_info = (package_updateinfo_s *)package_updateinfo;
- ret = pkgmgrinfo_updateinfo_get_version(update_info->update_info, &pkg_updateinfo_value);
- if (ret != PMINFO_R_OK || pkg_updateinfo_value == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_IO_ERROR, __FUNCTION__, NULL);
-
- ver_dup = strdup(pkg_updateinfo_value);
- if (ver_dup == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY, __FUNCTION__, NULL);
-
- *version = ver_dup;
- return PACKAGE_MANAGER_ERROR_NONE;
-}
-
-API int package_info_updateinfo_get_type(package_update_info_h package_updateinfo, package_update_info_type_e *type)
-{
- int ret;
- pkgmgrinfo_updateinfo_update_type pkg_updateinfo_value;
- package_update_info_type_e converted_type;
- package_updateinfo_s *update_info;
-
- if (package_updateinfo == NULL || type == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
-
- update_info = (package_updateinfo_s *)package_updateinfo;
- ret = pkgmgrinfo_updateinfo_get_update_type(update_info->update_info, &pkg_updateinfo_value);
- if (ret != PMINFO_R_OK)
- return package_manager_error(PACKAGE_MANAGER_ERROR_IO_ERROR, __FUNCTION__, NULL);
-
- ret = package_info_updateinfo_convert_type(pkg_updateinfo_value, &converted_type);
- if (ret != 0)
- return package_manager_error(PACKAGE_MANAGER_ERROR_IO_ERROR, __FUNCTION__, NULL);
-
- *type = converted_type;
- return PACKAGE_MANAGER_ERROR_NONE;
-}
-
-API int package_info_updateinfo_destroy(package_update_info_h package_updateinfo)
-{
- package_updateinfo_s *update_info;
-
- if (package_updateinfo == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
-
- update_info = (package_updateinfo_s *)package_updateinfo;
- pkgmgrinfo_updateinfo_destroy(update_info->update_info);
- free(update_info);
-
- return PACKAGE_MANAGER_ERROR_NONE;
-}
-
-API int package_info_updateinfo_foreach_updateinfo(package_info_updateinfo_cb callback, void *user_data)
-{
- int ret;
-
- if (callback == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
-
- foreach_updateinfo_context_s foreach_updateinfo = {
- .callback = callback,
- .user_data = user_data,
- };
-
- ret = pkgmgrinfo_updateinfo_foreach_updateinfo(package_info_foreach_updateinfo_cb, &foreach_updateinfo);
- if (ret != PMINFO_R_OK)
- return package_manager_error(PACKAGE_MANAGER_ERROR_IO_ERROR, __FUNCTION__, NULL);
-
- return PACKAGE_MANAGER_ERROR_NONE;
-}
-
int package_info_create_with_pkginfo(pkgmgrinfo_pkginfo_h pkg_handle, package_info_h *package_info)
{
package_info_h pkg_info = NULL;
pkgmgrinfo_pkginfo_filter_h pkgmgrinfo_pkginfo_filter;
};
-struct package_updateinfo_request_s {
- pkgmgr_client *pc;
- pkg_update_info_t *updateinfo_handle;
-};
-
static int package_manager_request_new_id()
{
static int request_handle_id = 0;
*ext_app_size = size_info->external_app_size;
return PACKAGE_MANAGER_ERROR_NONE;
}
-
-API int package_manager_updateinfo_set_pkgid(package_updateinfo_request_h package_updateinfo, const char *pkgid)
-{
- struct package_updateinfo_request_s *request;
-
- if (package_updateinfo == NULL || package_updateinfo->updateinfo_handle == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
-
- request = (struct package_updateinfo_request_s *)package_updateinfo;
- if (request->updateinfo_handle->pkgid)
- free(request->updateinfo_handle->pkgid);
- request->updateinfo_handle->pkgid = strdup(pkgid);
- if (request->updateinfo_handle->pkgid == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY, __FUNCTION__, NULL);
-
- return PACKAGE_MANAGER_ERROR_NONE;
-}
-
-API int package_manager_updateinfo_set_version(package_updateinfo_request_h package_updateinfo, const char *version)
-{
- struct package_updateinfo_request_s *request;
-
- if (package_updateinfo == NULL || package_updateinfo->updateinfo_handle == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
-
- request = (struct package_updateinfo_request_s *)package_updateinfo;
- if (request->updateinfo_handle->version)
- free(request->updateinfo_handle->version);
- request->updateinfo_handle->version = strdup(version);
- if (request->updateinfo_handle->pkgid == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY, __FUNCTION__, NULL);
-
- return PACKAGE_MANAGER_ERROR_NONE;
-}
-
-static int package_manager_updateinfo_convert_property(package_update_info_type_e property, pkgmgr_updateinfo_type *converted_property)
-{
- if (converted_property == NULL)
- return -1;
-
- if (property == PACKAGE_UPDATEINFO_TYPE_FORCE)
- *converted_property = PM_UPDATEINFO_TYPE_FORCE;
- else if (property == PACKAGE_UPDATEINFO_TYPE_OPTIONAL)
- *converted_property = PM_UPDATEINFO_TYPE_OPTIONAL;
- else if (property == PACKAGE_UPDATEINFO_TYPE_NONE)
- *converted_property = PM_UPDATEINFO_TYPE_NONE;
- else
- return -1;
-
- return 0;
-}
-
-API int package_manager_updateinfo_set_type(package_updateinfo_request_h package_updateinfo, package_update_info_type_e type)
-{
- int retval;
- pkgmgr_updateinfo_type converted_type;
- struct package_updateinfo_request_s *request;
-
- if (package_updateinfo == NULL || package_updateinfo->updateinfo_handle == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
-
- request = (struct package_updateinfo_request_s *)package_updateinfo;
- retval = package_manager_updateinfo_convert_property(type, &converted_type);
- if (retval != 0)
- return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
-
- request->updateinfo_handle->type = converted_type;
- return PACKAGE_MANAGER_ERROR_NONE;
-}
-
-API int package_manager_updateinfo_request_destroy(package_updateinfo_request_h package_updateinfo)
-{
- struct package_updateinfo_request_s *request;
-
- if (package_updateinfo == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
-
- request = (struct package_updateinfo_request_s *)package_updateinfo;
- if (request->pc)
- pkgmgr_client_free(request->pc);
-
- if (request->updateinfo_handle) {
- if (request->updateinfo_handle->pkgid)
- free(request->updateinfo_handle->pkgid);
- if (request->updateinfo_handle->version)
- free(request->updateinfo_handle->version);
- free(request->updateinfo_handle);
- }
- free(request);
-
- return PACKAGE_MANAGER_ERROR_NONE;
-}
-
-API int package_manager_updateinfo_request_create(package_updateinfo_request_h *package_updateinfo)
-{
- struct package_updateinfo_request_s *request;
- pkg_update_info_t *update_info;
-
- if (package_updateinfo == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
-
- request = calloc(1, sizeof(struct package_updateinfo_request_s));
- if (request == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY, __FUNCTION__, NULL);
-
- request->pc = pkgmgr_client_new(PC_REQUEST);
- if (request->pc == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY, __FUNCTION__, NULL);
-
- update_info = calloc(1, sizeof(pkg_update_info_t));
- if (update_info == NULL) {
- pkgmgr_client_free(request->pc);
- return package_manager_error(PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY, __FUNCTION__, NULL);
- }
- request->updateinfo_handle = update_info;
-
- *package_updateinfo = request;
- return PACKAGE_MANAGER_ERROR_NONE;
-}
-
-API int package_manager_updateinfo_request_register(package_updateinfo_request_h package_updateinfo)
-{
- struct package_updateinfo_request_s *update_info;
- int retval;
-
- if (package_updateinfo == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
- update_info = (struct package_updateinfo_request_s *)package_updateinfo;
-
- retval = pkgmgr_client_register_pkg_update_info(update_info->pc, update_info->updateinfo_handle);
- if (retval == PKGMGR_R_EINVAL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
-
- return PACKAGE_MANAGER_ERROR_NONE;
-}
-
-API int package_manager_updateinfo_request_unregister(package_updateinfo_request_h package_updateinfo, const char *pkgid)
-{
- int retval;
- struct package_updateinfo_request_s *update_info;
-
- retval = check_privilege(PRIVILEGE_PACKAGE_MANAGER_ADMIN);
- if (retval != PACKAGE_MANAGER_ERROR_NONE)
- return retval;
-
- if (package_updateinfo == NULL || pkgid == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
-
- update_info = (struct package_updateinfo_request_s *)package_updateinfo;
- retval = pkgmgr_client_unregister_pkg_update_info(update_info->pc, pkgid);
- if (retval != PMINFO_R_OK)
- return package_manager_error(PACKAGE_MANAGER_ERROR_IO_ERROR, __FUNCTION__, NULL);
-
- return PACKAGE_MANAGER_ERROR_NONE;
-}
-
-API int package_manager_updateinfo_request_unregister_all(package_updateinfo_request_h package_updateinfo)
-{
- int retval;
- struct package_updateinfo_request_s *update_info;
-
- retval = check_privilege(PRIVILEGE_PACKAGE_MANAGER_ADMIN);
- if (retval != PACKAGE_MANAGER_ERROR_NONE)
- return retval;
-
- if (package_updateinfo == NULL)
- return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
-
- update_info = (struct package_updateinfo_request_s *)package_updateinfo;
- retval = pkgmgr_client_unregister_all_pkg_update_info(update_info->pc);
-
- if (retval != PMINFO_R_OK)
- return package_manager_error(PACKAGE_MANAGER_ERROR_IO_ERROR, __FUNCTION__, NULL);
-
- return PACKAGE_MANAGER_ERROR_NONE;
-}