Add Foreach depdency API for Archiveinfo
[platform/core/appfw/pkgmgr-info.git] / include / pkgmgr-info.h
index 89f2ed6..8fac17b 100644 (file)
@@ -1354,6 +1354,71 @@ int pkgmgrinfo_updateinfo_foreach_updateinfo(pkgmgrinfo_foreach_updateinfo_cb ca
 int pkgmgrinfo_updateinfo_usr_foreach_updateinfo(uid_t uid, pkgmgrinfo_foreach_updateinfo_cb callback, void *user_data);
 
 /**
+ * @fn int pkgmgrinfo_plugininfo_is_executed(const char *pkgid, const char *appid, const char *plugin_type, const char *plugin_name, bool *is_executed);
+ * @brief      This API checkes whether given plugin had been executed with given package ID and application ID or not.
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  pkgid   package ID
+ * @param[in]  appid   application ID
+ * @param[in]  plugin_type     plugin type to be checked
+ * @param[in]  plugin_name     plugin name to be checked
+ * @param[out] is_executed     check result
+ * @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 bool check_execute_info(const char *pkgid, const char *appid, const char *plugin_type, const char *plugin_name)
+{
+       int ret = 0;
+       bool is_executed;
+
+       ret = pkgmgrinfo_plugininfo_is_executed(pkgid, appid, plugin_type, plugin_name, &is_executed);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       printf("is checked is [%d]\n", is_executed);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_plugininfo_is_executed(const char *pkgid, const char *appid,
+               const char *plugin_type, const char *plugin_name, bool *is_executed);
+
+/**
+ * @fn int pkgmgrinfo_plugininfo_foreach_plugininfo(const char *pkgid, const char *plugin_type, const char *plugin_name, pkgmgrinfo_plugin_list_cb plugin_list_cb, void *user_data);
+ * @brief      This API retrieve the previous plugin execution info and invoke callbacks each of it.
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  pkgid                   package ID
+ * @param[in]  plugin_type             type of plugin
+ * @param[in]  plugin_name             name of plugin
+ * @param[in]  plugin_list_cb  callback to be invoked for each plugin execution info
+ * @param[out] user_data               user data to be passed to callback
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @code
+static int foreach_pkg_plugininfo(const char *pkgid, const char *plugin_type, const char *plugin_name, pkgmgrinfo_plugin_list_cb callback)
+{
+       int ret = 0;
+
+       ret = pkgmgrinfo_plugininfo_foreach_plugininfo(pkgid, plugin_type, plugin_name, callback, NULL);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_plugininfo_foreach_plugininfo(const char *pkgid,
+               const char *plugin_type, const char *plugin_name,
+               pkgmgrinfo_plugin_list_cb plugin_list_cb, void *user_data);
+
+/**
  * @fn int pkgmgrinfo_appinfo_get_launch_mode(pkgmgrinfo_appinfo_h handle, char **mode)
  * @brief      This API gets the launch mode of package from the package ID
  *
@@ -1885,7 +1950,7 @@ int pkgmgrinfo_pkginfo_is_readonly(pkgmgrinfo_pkginfo_h handle, bool *readonly);
 
 /**
  * @fn int pkgmgrinfo_pkginfo_is_update(pkgmgrinfo_pkginfo_h handle, bool *update)
- * @brief      This API gets the package 'upate' value from the package ID
+ * @brief      This API gets the package 'update' value from the package ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
@@ -1961,7 +2026,7 @@ int pkgmgrinfo_pkginfo_is_support_disable(pkgmgrinfo_pkginfo_h handle, bool *sup
 
 /**
  * @fn int pkgmgrinfo_pkginfo_is_global(pkgmgrinfo_pkginfo_h handle, bool *global)
- * @brief      This API gets whethere the given package is global package or user package
+ * @brief      This API gets whether the given package is global package or user package
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
@@ -2487,6 +2552,52 @@ static int list_appdefined_privilege(const char *package)
 int pkgmgrinfo_pkginfo_foreach_appdefined_privilege(pkgmgrinfo_pkginfo_h handle,
                        pkgmgrinfo_pkg_appdefined_privilege_list_cb privilege_func, void *user_data);
 
+/**
+ * @fn int pkgmgrinfo_pkginfo_foreach_plugin(pkgmgrinfo_pkginfo_h handle,
+                       pkgmgrinfo_plugin_list_cb plugin_func, void *user_data);
+ * @brief      This API gets the list of plugin execution info for a particular package
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ * @param[in]  handle          pointer to the package info handle.
+ * @param[in]  plugin_func             callback function for list
+ * @param[in] user_data        user data to be passed to callback function
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
+ * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @code
+int plugin_func(const char *pkgid, const char *appid,
+                               const char *plugin_type, const char *plugin_name,
+                               void *user_data)
+{
+       printf("appid : %s, type : %s, name : %s\n", appid, plugin_type, plugin_name);
+
+       return 0;
+}
+
+static int list_plugin(const char *package)
+{
+       int ret = 0;
+       pkgmgrinfo_pkginfo_h handle;
+       ret = pkgmgrinfo_pkginfo_get_pkginfo(package, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_pkginfo_foreach_plugin(handle, plugin_func, NULL);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+               return -1;
+       }
+       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_pkginfo_foreach_plugin(pkgmgrinfo_pkginfo_h handle,
+                       pkgmgrinfo_plugin_list_cb plugin_func, void *user_data);
+
 /* TODO: add doxygen comment here */
 int pkgmgrinfo_pkginfo_is_for_all_users(pkgmgrinfo_pkginfo_h handle, bool *for_all_users);
 
@@ -5095,7 +5206,7 @@ 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
+ * @brief      This API gets whether the given application is global application or user application
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
@@ -6242,10 +6353,10 @@ int pkgmgrinfo_compare_package_version(const char *current_version,
  * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
  * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
  * @code
-int dependency_cb(const char *pkgid, const char *type,
+int dependency_cb(const char *from const char *to, const char *type,
                const char *required_version,void *user_data)
 {
-       printf("this package %s %s", type, pkgid);
+       printf("this package %s %s", type, to);
        if (required_version)
                printf("required version : %s", required_version);
        return 0;
@@ -6273,10 +6384,11 @@ int pkgmgrinfo_pkginfo_foreach_dependency(pkgmgrinfo_pkginfo_h handle,
                void *user_data);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_foreach_required_by(pkgmgrinfo_pkginfo_h handle,
+ * @fn int pkgmgrinfo_pkginfo_foreach_depends_on(pkgmgrinfo_pkginfo_h handle,
                        pkgmgrinfo_pkg_dependency_list_cb dependency_cb,
                        void *user_data);
- * @brief      This API gets the list of packages which has dependency of a particular package
+ * @brief      This API gets the list of packages which has dependency directly
+ *             and indirectly of a particular package
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
@@ -6290,23 +6402,23 @@ int pkgmgrinfo_pkginfo_foreach_dependency(pkgmgrinfo_pkginfo_h handle,
  * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
  * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
  * @code
-int dependency_cb(const char *pkgid, const char *type,
+int dependency_cb(const char *from, const char *to, const char *type,
                const char *required_version,void *user_data)
 {
-       printf("%s %s this package", pkgid, type);
+       printf("%s %s %s package", from, to, type);
        if (required_version)
                printf("required version : %s", required_version);
        return 0;
 }
 
-static int list_required_by(const char *package)
+static int list_depends_on(const char *package)
 {
        int ret = 0;
        pkgmgrinfo_pkginfo_h handle;
        ret = pkgmgrinfo_pkginfo_get_pkginfo(package, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_foreach_required_by(handle, dependency_cb, NULL);
+       ret = pkgmgrinfo_pkginfo_foreach_depends_on(handle, dependency_cb, NULL);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
@@ -6316,47 +6428,517 @@ static int list_required_by(const char *package)
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_foreach_required_by(pkgmgrinfo_pkginfo_h handle,
+int pkgmgrinfo_pkginfo_foreach_depends_on(pkgmgrinfo_pkginfo_h handle,
                pkgmgrinfo_pkg_dependency_list_cb dependency_cb,
                void *user_data);
 
 /**
- * @brief      TEMP
- */
-
+ * @fn int pkgmgrinfo_pkginfo_get_list_full(pkgmgrinfo_pkg_list_cb pkg_list_cb, int flag, void *user_data)
+ * @brief      This API gets list of installed packages using flag that used for masking package's information
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ * @param[in]  pkg_list_cb     iteration function for list
+ * @param[in]  flag    enum value of pkgmgrinfo_pkginfo_get_option used for masking package's information
+ * @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
+ * @see                pkgmgrinfo_pkginfo_get_option
+ * @code
+int pkg_list_cb(pkgmgrinfo_pkginfo_h handle, void *user_data)
+{
+       char *label1 = NULL;
+       char *label2 = NULL;
+       label1 = (char *)user_data;
+       pkgmgrinfo_pkginfo_get_label(handle, &label2);
+       if (strcmp(label1, label2) == 0)
+               return -1;
+       else
+               return 0;
+}
 
+static int list_pkgs()
+{
+       int ret = 0;
+       char *label = "helloworld";
+       ret = pkgmgrinfo_pkginfo_get_list_full(pkg_list_cb, PMINFO_PKGINFO_GET_LABEL, (void *)name);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       return 0;
+}
+ * @endcode
+ */
 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);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_get_installed_list_full(pkgmgrinfo_app_list_cb app_func, int flag, void *user_data)
+ * @brief      This API gets list of installed applications from all packages using flag that used for masking application's information
+ *
+ * @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]  flag    enum value of pkgmgrinfo_appinfo_get_option used for masking application's information
+ * @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
+ * @see                pkgmgrinfo_appinfo_get_option
+ * @code
+int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
+{
+       int ret = 0;
+       char *label1 = NULL;
+       char *label2 = NULL;
+       label1 = (char *)user_data;
+       ret = pkgmgrinfo_appinfo_get_label(handle, &label2);
+       if (ret != PMINFO_R_OK) {
+               printf("pkgmgrinfo_appinfo_get_label fail");
+               return -1;
+       }
+       if (strcmp(label1, label2) == 0)
+               return -1;
+       else
+               return 0;
+}
+
+static int list_apps()
+{
+       int ret = 0;
+       char *label = "helloworld";
+       ret = pkgmgrinfo_appinfo_get_installed_list_full(app_list_cb, PMINFO_APPINFO_GET_LABEL, (void *)label);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       return 0;
+}
+ * @endcode
+ */
 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);
 
-
+/**
+ * @fn int pkgmgrinfo_archiveinfo_get_archiveinfo(const char *path, pkgmgrinfo_archiveinfo_h *handle)
+ * @brief      This API creates the package archive information handle from given path
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  path    path of package archive
+ * @param[out] handle  pointer to the package archive 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_archiveinfo_destroy_archiveinfo()
+ * @code
+static int get_pkg_archive_type(const char *path)
+{
+       int ret = 0;
+       char *type = NULL;
+       pkgmgrinfo_archiveinfo_h handle;
+       ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_archiveinfo_get_type(handle, &type);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+               return -1;
+       }
+       printf("pkg archive type: %s\n", type);
+       pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+       return 0;
+}
+ * @endcode
+ */
 int pkgmgrinfo_archiveinfo_get_archiveinfo(const char *path,
                pkgmgrinfo_archiveinfo_h *handle);
+
+/**
+ * @fn int pkgmgrinfo_archiveinfo_destroy_archiveinfo(pkgmgrinfo_archiveinfo_h handle)
+ * @brief      This API destroys the package archive 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 archive info handle
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @pre                pkgmgrinfo_archiveinfo_get_archiveinfo()
+ * @post       None
+ * @code
+static int get_pkg_archive_type(const char *path)
+{
+       int ret = 0;
+       char *type = NULL;
+       pkgmgrinfo_archiveinfo_h handle;
+       ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_archiveinfo_get_type(handle, &type);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+               return -1;
+       }
+       printf("pkg archive type: %s\n", type);
+       pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+       return 0;
+}
+ * @endcode
+ */
 int pkgmgrinfo_archiveinfo_destroy_archiveinfo(pkgmgrinfo_archiveinfo_h handle);
+
+/**
+ * @fn int pkgmgrinfo_archiveinfo_get_pkgid(pkgmgrinfo_archiveinfo_h handle, char **pkgid)
+ * @brief      This API gets the package id from the package archive info handle
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  handle  pointer to package archive 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
+ * @pre                pkgmgrinfo_archiveinfo_get_archiveinfo()
+ * @post       pkgmgrinfo_archiveinfo_destroy_archiveinfo()
+ * @code
+static int get_pkg_archive_id(const char *path)
+{
+       int ret = 0;
+       char *pkg_id = NULL;
+       pkgmgrinfo_archiveinfo_h handle;
+       ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_archiveinfo_get_pkgid(handle, &pkg_id);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+               return -1;
+       }
+       printf("pkg archive id: %s\n", pkg_id);
+       pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+       return 0;
+}
+ * @endcode
+ */
 int pkgmgrinfo_archiveinfo_get_pkgid(pkgmgrinfo_archiveinfo_h handle,
                const char **pkgid);
+
+/**
+ * @fn int pkgmgrinfo_archiveinfo_get_type(pkgmgrinfo_archiveinfo_h handle, char **type)
+ * @brief      This API gets the package type from the package archive info handle
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  handle  pointer to package archive info handle
+ * @param[out] type    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
+ * @pre                pkgmgrinfo_archiveinfo_get_archiveinfo()
+ * @post       pkgmgrinfo_archiveinfo_destroy_archiveinfo()
+ * @code
+static int get_pkg_archive_type(const char *path)
+{
+       int ret = 0;
+       char *type = NULL;
+       pkgmgrinfo_archiveinfo_h handle;
+       ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_archiveinfo_get_type(handle, &type);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+               return -1;
+       }
+       printf("pkg archive type: %s\n", type);
+       pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+       return 0;
+}
+ * @endcode
+ */
 int pkgmgrinfo_archiveinfo_get_type(pkgmgrinfo_archiveinfo_h handle,
                const char **type);
+
+/**
+ * @fn int pkgmgrinfo_archiveinfo_get_version(pkgmgrinfo_archiveinfo_h handle, char **version)
+ * @brief      This API gets the package version from the package archive info handle
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  handle  pointer to package archive info handle
+ * @param[out] version pointer to hold package version
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @pre                pkgmgrinfo_archiveinfo_get_archiveinfo()
+ * @post       pkgmgrinfo_archiveinfo_destroy_archiveinfo()
+ * @code
+static int get_pkg_archive_version(const char *path)
+{
+       int ret = 0;
+       char *version = NULL;
+       pkgmgrinfo_archiveinfo_h handle;
+       ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_archiveinfo_get_version(handle, &version);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+               return -1;
+       }
+       printf("pkg archive version: %s\n", version);
+       pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+       return 0;
+}
+ * @endcode
+ */
 int pkgmgrinfo_archiveinfo_get_version(pkgmgrinfo_archiveinfo_h handle,
                const char **version);
+
+/**
+ * @fn int pkgmgrinfo_archiveinfo_get_api_version(pkgmgrinfo_archiveinfo_h handle, char **api_version)
+ * @brief      This API gets the package api version from the package archive info handle
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  handle  pointer to package archive info handle
+ * @param[out] api_version     pointer to hold package api_version
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @pre                pkgmgrinfo_archiveinfo_get_archiveinfo()
+ * @post       pkgmgrinfo_archiveinfo_destroy_archiveinfo()
+ * @code
+static int get_pkg_archive_api_version(const char *path)
+{
+       int ret = 0;
+       char *api_version = NULL;
+       pkgmgrinfo_archiveinfo_h handle;
+       ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_archiveinfo_get_api_version(handle, &api_version);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+               return -1;
+       }
+       printf("pkg archive api_version: %s\n", api_version);
+       pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+       return 0;
+}
+ * @endcode
+ */
 int pkgmgrinfo_archiveinfo_get_api_version(pkgmgrinfo_archiveinfo_h handle,
                const char **api_version);
+
+/**
+ * @fn int pkgmgrinfo_archiveinfo_get_description(pkgmgrinfo_archiveinfo_h handle, char **description)
+ * @brief      This API gets the package description from the package archive info handle
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  handle  pointer to package archive info handle
+ * @param[out] description     pointer to hold package description
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @pre                pkgmgrinfo_archiveinfo_get_archiveinfo()
+ * @post       pkgmgrinfo_archiveinfo_destroy_archiveinfo()
+ * @code
+static int get_pkg_archive_description(const char *path)
+{
+       int ret = 0;
+       char *description = NULL;
+       pkgmgrinfo_archiveinfo_h handle;
+       ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_archiveinfo_get_description(handle, &description);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+               return -1;
+       }
+       printf("pkg archive description: %s\n", description);
+       pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+       return 0;
+}
+ * @endcode
+ */
 int pkgmgrinfo_archiveinfo_get_description(pkgmgrinfo_archiveinfo_h handle,
                const char **description);
+
+/**
+ * @fn int pkgmgrinfo_archiveinfo_get_label(pkgmgrinfo_archiveinfo_h handle, char **label)
+ * @brief      This API gets the package label from the package archive info handle
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  handle  pointer to package archive info handle
+ * @param[out] label   pointer to hold package label
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @pre                pkgmgrinfo_archiveinfo_get_archiveinfo()
+ * @post       pkgmgrinfo_archiveinfo_destroy_archiveinfo()
+ * @code
+static int get_pkg_archive_label(const char *path)
+{
+       int ret = 0;
+       char *label = NULL;
+       pkgmgrinfo_archiveinfo_h handle;
+       ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_archiveinfo_get_label(handle, &label);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+               return -1;
+       }
+       printf("pkg archive label: %s\n", label);
+       pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+       return 0;
+}
+ * @endcode
+ */
 int pkgmgrinfo_archiveinfo_get_label(pkgmgrinfo_archiveinfo_h handle,
                const char **label);
+
+/**
+ * @fn int pkgmgrinfo_archiveinfo_get_author(pkgmgrinfo_archiveinfo_h handle, char **author)
+ * @brief      This API gets the package author from the package archive info handle
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  handle  pointer to package archive info handle
+ * @param[out] author  pointer to hold package author
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @pre                pkgmgrinfo_archiveinfo_get_archiveinfo()
+ * @post       pkgmgrinfo_archiveinfo_destroy_archiveinfo()
+ * @code
+static int get_pkg_archive_author(const char *path)
+{
+       int ret = 0;
+       char *author = NULL;
+       pkgmgrinfo_archiveinfo_h handle;
+       ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_archiveinfo_get_author(handle, &author);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+               return -1;
+       }
+       printf("pkg archive author: %s\n", author);
+       pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+       return 0;
+}
+ * @endcode
+ */
 int pkgmgrinfo_archiveinfo_get_author(pkgmgrinfo_archiveinfo_h handle,
                const char **author);
+
+/**
+ * @fn int pkgmgrinfo_archiveinfo_get_icon(pkgmgrinfo_archiveinfo_h handle, const unsigned char **icon, size_t *size)
+ * @brief      This API gets the package icon and size from the package archive info handle
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  handle  pointer to package archive info handle
+ * @param[out] icon    pointer to hold package icon
+ * @param[out] size    pointer to hold size of package icon
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ENOENT no result
+ * @pre                pkgmgrinfo_archiveinfo_get_archiveinfo()
+ * @post       pkgmgrinfo_archiveinfo_destroy_archiveinfo()
+ * @code
+static int get_pkg_archive_icon(const char *path)
+{
+       int ret = 0;
+       unsigned char *icon = NULL;
+       size_t icon_size = 0;
+       pkgmgrinfo_archiveinfo_h handle;
+       ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_archiveinfo_get_icon(handle, &icon, &icon_size);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+               return -1;
+       }
+       printf("pkg archive icon size : %zu\n", icon_size);
+       pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+       return 0;
+}
+ * @endcode
+ */
 int pkgmgrinfo_archiveinfo_get_icon(pkgmgrinfo_archiveinfo_h handle,
                const unsigned char **icon, size_t *size);
 
 /**
+ * @fn int pkgmgrinfo_archiveinfo_foreach_dependency(pkgmgrinfo_archiveinfo_h handle, pkgmgrinfo_dependency_cb callback, void *user_data)
+ * @brief      This API retrieve the dependency information and invoke given callback for it.
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  handle  pointer to package archive info handle
+ * @param[in]  callback        callback to be invoked for each retrieved dependency information
+ * @param[in]  user_data       user data to be passed to callback
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_archiveinfo_get_archiveinfo()
+ * @post       pkgmgrinfo_archiveinfo_destroy_archiveinfo()
+ * @code
+static int get_pkg_archive_dependency(const char *path, pkgmgrinfo_pkg_dependency_list_cb callback)
+{
+       int ret = 0;
+       size_t icon_size = 0;
+       pkgmgrinfo_archiveinfo_h handle;
+       ret = pkgmgrinfo_archiveinfo_get_archiveinfo(path, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_archiveinfo_foreach_dependency(handle, callback, NULL);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+               return -1;
+       }
+       pkgmgrinfo_archiveinfo_destroy_archiveinfo(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_archiveinfo_foreach_dependency(pkgmgrinfo_archiveinfo_h handle,
+               pkgmgrinfo_pkg_dependency_list_cb callback, void *user_data);
+
+/**
  * @pkgmgrinfo client API end
 **/