Add Foreach depdency API for Archiveinfo
[platform/core/appfw/pkgmgr-info.git] / include / pkgmgrinfo_type.h
index ba7e3c1..f65ad48 100644 (file)
 #define APP_BG_CATEGORY_IOTCOMM_STR                    "iot-communication"
 #define APP_BG_CATEGORY_SYSTEM                         "system"
 
+/* Integer property for support-mode */
+#define        APP_SUPPORT_MODE_ULTRA_POWER_SAVING_VAL         0x00001
+#define        APP_SUPPORT_MODE_COOL_DOWN_VAL                          0x00002
+#define        APP_SUPPORT_MODE_SCREEN_READER_VAL                      0x00004
+
+/* String property for support-mode */
+#define APP_SUPPORT_MODE_ULTRA_POWER_SAVING_STR                "ultra-power-saving"
+#define APP_SUPPORT_MODE_COOL_DOWN_STR         "cool-down"
+#define APP_SUPPORT_MODE_SCREEN_READER_STR             "screen-reader"
+
 /**
  * @brief A type to retrieve uid information from the manifest handle
  */
@@ -83,23 +93,26 @@ typedef enum {
 } pkgmgrinfo_cert_compare_result_type_e;
 
 typedef enum {
-       PMINFO_APPINFO_GET_LABEL = 0x0001,
-       PMINFO_APPINFO_GET_ICON = 0x0002,
-       PMINFO_APPINFO_GET_CATEGORY = 0x0004,
-       PMINFO_APPINFO_GET_APP_CONTROL = 0x0008,
-       PMINFO_APPINFO_GET_DATA_CONTROL = 0x0010,
+       PMINFO_APPINFO_GET_BASICINFO = 0x0001,
+       PMINFO_APPINFO_GET_LABEL = 0x0002,
+       PMINFO_APPINFO_GET_ICON = 0x0004,
+       PMINFO_APPINFO_GET_CATEGORY = 0x0008,
+       PMINFO_APPINFO_GET_APP_CONTROL = 0x0010,
        PMINFO_APPINFO_GET_METADATA = 0x0020,
        PMINFO_APPINFO_GET_SPLASH_SCREEN = 0x0040,
        PMINFO_APPINFO_GET_ALL = 0x007F
 } pkgmgrinfo_appinfo_get_option;
 
 typedef enum {
-       PMINFO_PKGINFO_GET_LABEL = 0x0001,
-       PMINFO_PKGINFO_GET_ICON = 0x0002,
-       PMINFO_PKGINFO_GET_AUTHOR = 0x0004,
-       PMINFO_PKGINFO_GET_DESCRIPTION = 0x0008,
-       PMINFO_PKGINFO_GET_PRIVILEGE = 0x0010,
-       PMINFO_PKGINFO_GET_ALL = 0x001F
+       PMINFO_PKGINFO_GET_BASICINFO = 0x0001,
+       PMINFO_PKGINFO_GET_LABEL = 0x0002,
+       PMINFO_PKGINFO_GET_ICON = 0x0004,
+       PMINFO_PKGINFO_GET_AUTHOR = 0x0008,
+       PMINFO_PKGINFO_GET_DESCRIPTION = 0x0010,
+       PMINFO_PKGINFO_GET_PRIVILEGE = 0x0020,
+       PMINFO_PKGINFO_GET_APPDEFINED_PRIVILEGE = 0x0040,
+       PMINFO_PKGINFO_GET_DEPENDENCY = 0x0080,
+       PMINFO_PKGINFO_GET_ALL = 0x00FF
 } pkgmgrinfo_pkginfo_get_option;
 
 /**
@@ -127,6 +140,27 @@ enum {
  */
 #define        PMINFO_PKGINFO_INSTALL_LOCATION_EXTERNAL        "LOCATION_EXTERNAL"
 
+/**
+ * @brief Value to be used when get/set update information
+ */
+#define PMINFO_UPDATEINFO_TYPE_FORCE   "force"
+
+/**
+ * @brief Value to be used when get/set update information
+ */
+#define PMINFO_UPDATEINFO_TYPE_OPTIONAL        "optional"
+
+/**
+ * @brief Value to be used when get/set update information
+ */
+#define PMINFO_UPDATEINFO_TYPE_NONE    "none"
+
+typedef enum {
+       PMINFO_UPDATEINFO_NONE = 0,             /**<No update info exists*/
+       PMINFO_UPDATEINFO_FORCE,                /**<Don't launch application if it's not updated*/
+       PMINFO_UPDATEINFO_OPTIONAL              /**<Update exists but not force user to update it*/
+} pkgmgrinfo_updateinfo_update_type;
+
 typedef enum {
        PMINFO_HWACCELERATION_OFF = 0,          /**< Don't use hardware acceleration*/
        PMINFO_HWACCELERATION_ON = 1,           /**< Use hardware acceleration*/
@@ -166,6 +200,11 @@ typedef void *pkgmgrinfo_certinfo_h;
 typedef void *pkgmgrinfo_pkginfo_filter_h;
 
 /**
+ * @brief A handle to get/set package update information
+ */
+typedef void *pkgmgrinfo_updateinfo_h;
+
+/**
  * @brief A handle to filter application information
  */
 typedef void *pkgmgrinfo_appinfo_filter_h;
@@ -181,11 +220,31 @@ typedef void *pkgmgrinfo_appinfo_metadata_filter_h;
 typedef void *pkgmgrinfo_appcontrol_h;
 
 /**
+ * @brief A handle to get package archive information
+ */
+typedef void *pkgmgrinfo_archiveinfo_h;
+
+/**
  * @brief type definition.
  */
 typedef void pkgmgrinfo_client;
 
 /**
+ * @fn int (*pkgmgrinfo_foreach_updateinfo_cb) (const pkgmgrinfo_updateinfo_h handle, void *user_data)
+ *
+ * @brief Specifies the type of function passed to pkgmgrinfo_updateinfo_foreach_updateinfo()
+ *
+ * @param[in] handle the package update info handle
+ * @param[in] user_data user data passed to pkgmgrinfo_foreach_pkg_update info()
+ *
+ * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
+ *
+ * @see  pkgmgrinfo_updateinfo_foreach_updateinfo()
+ */
+typedef int (*pkgmgrinfo_foreach_updateinfo_cb) (const pkgmgrinfo_updateinfo_h handle,
+                                                       void *user_data);
+
+/**
  * @fn int (*pkgmgrinfo_pkg_list_cb) (const pkgmgrinfo_pkginfo_h handle, void *user_data)
  *
  * @brief Specifies the type of function passed to pkgmgrinfo_pkginfo_get_list(), pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
@@ -234,34 +293,74 @@ typedef int (*pkgmgrinfo_app_category_list_cb) (const char *category_name,
                                                        void *user_data);
 
 /**
- * @fn int (*pkgmgrinfo_app_permission_list_cb) (const char *permission_type, void *user_data)
+ * @fn int (*pkgmgrinfo_pkg_privilege_list_cb) (const char *privilege_name, void *user_data)
  *
- * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_category()
+ * @brief Specifies the type of function passed to pkgmgrinfo_pkginfo_foreach_privilege()
  *
- * @param[in] permission_name the name of the permission
- * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_category()
+ * @param[in] privilege_name the name of the privilege
+ * @param[in] user_data user data passed to pkgmgrinfo_pkginfo_foreach_privilege()
  *
  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
  *
- * @see  pkgmgrinfo_appinfo_foreach_category()
+ * @see  pkgmgrinfo_pkginfo_foreach_privilege()
  */
-typedef int (*pkgmgrinfo_app_permission_list_cb) (const char *permission_type,
+typedef int (*pkgmgrinfo_pkg_privilege_list_cb) (const char *privilege_name,
                                                        void *user_data);
 
 /**
- * @fn int (*pkgmgrinfo_pkg_privilege_list_cb) (const char *privilege_name, void *user_data)
+ * @fn int (*pkgmgrinfo_pkg_appdefined_privilege_list_cb) (const char *privilege_name, const char *license_path, void *user_data)
  *
- * @brief Specifies the type of function passed to pkgmgrinfo_pkginfo_foreach_privilege()
+ * @brief Specifies the type of function passed to pkgmgrinfo_pkginfo_foreach_appdefined_privilege()
  *
  * @param[in] privilege_name the name of the privilege
- * @param[in] user_data user data passed to pkgmgrinfo_pkginfo_foreach_privilege()
+ * @param[in] license_path the path of the license
+ * @param[in] user_data user data passed to pkgmgrinfo_pkginfo_foreach_appdefined_privilege()
  *
  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
  *
- * @see  pkgmgrinfo_pkginfo_foreach_privilege()
+ * @see  pkgmgrinfo_pkginfo_foreach_appdefined_privilege()
  */
-typedef int (*pkgmgrinfo_pkg_privilege_list_cb) (const char *privilege_name,
+typedef int (*pkgmgrinfo_pkg_appdefined_privilege_list_cb) (const char *privilege_name,
+                                                       const char *license_path,
                                                        void *user_data);
+/**
+ * @fn int (*pkgmgrinfo_pkg_dependency_list_cb) (const char *from, const char *to, const char *type, const char *required_version, void *user_data)
+ *
+ * @brief Specifies the dependency info of given package passed to pkgmgrinfo_pkginfo_foreach_dependency(), pkgmgrinfo_pkginfo_foreach_required_by(), pkgmgrinfo_archiveinfo_foreach_dependency()
+ *
+ * @param[in] from the pkgid which depends other package
+ * @param[in] to the pkgid which has dependency with given package
+ * @param[in] type type of dependency
+ * @param[in] required_version required version of dependency
+ * @param[in] user_data user data passed
+ *
+ * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
+ *
+ * @see  pkgmgrinfo_pkginfo_foreach_dependency()
+ * @see  pkgmgrinfo_pkginfo_foreach_required_by()
+ */
+typedef int (*pkgmgrinfo_pkg_dependency_list_cb) (const char *from, const char *to,
+               const char *type, const char *required_version,
+               void *user_data);
+
+/**
+ * @fn int (*pkgmgrinfo_plugin_list_cb) (const char *pkgid, const char *appid, const char *plugin_type, const char *plugin_name, void *user_data);
+ *
+ * @brief Specifies the type of function passed to pkgmgrinfo_plugininfo_foreach_plugininfo()
+ *
+ * @param[in] pkgid the name of the package
+ * @param[in] appid the name of the application
+ * @param[in] plugin_type the type of the executed plugin
+ * @param[in] plugin_name the name of the executed plugin
+ * @param[in] user_data user data passed to pkgmgrinfo_plugininfo_foreach_plugininfo()
+ *
+ * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
+ *
+ * @see  pkgmgrinfo_plugininfo_foreach_plugininfo()
+ */
+typedef int (*pkgmgrinfo_plugin_list_cb) (const char *pkgid, const char *appid,
+               const char *plugin_type, const char *plugin_name,
+               void *user_data);
 
 /**
  * @fn int (*pkgmgrinfo_app_metadata_list_cb) (const char *metadata_key, const char *metadata_value, void *user_data)
@@ -293,6 +392,24 @@ typedef int (*pkgmgrinfo_app_metadata_list_cb) (const char *metadata_key,
  */
 typedef int (*pkgmgrinfo_app_control_list_cb) (const char *operation, const char *uri, const char *mime,
                                                        void *user_data);
+/**
+ * @fn int (*pkgmgrinfo_app_control_list_cb_v2) (const char *operation, const char *uri, const char *mime, const char *id, void *user_data)
+ *
+ * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_appcontrol_info()
+ *
+ * @param[in] operation The operation of the app-control
+ * @param[in] uri       The URI of the app-control
+ * @param[in] mime      The MIME-Type of the app-control
+ * @param[in] id        The ID of the app-control
+ * @param[in] user_data The user data passed from pkgmgrinfo_appinfo_foreach_appcontrol_v2()
+ *
+ * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
+ *
+ * @see  pkgmgrinfo_appinfo_foreach_appcontrol_v2()
+ */
+typedef int (*pkgmgrinfo_app_control_list_cb_v2) (const char *operation,
+               const char *uri, const char *mime, const char *id,
+               void *user_data);
 
 /**
  * @fn int (*pkgmgrinfo_app_background_category_list_cb) (const char *category_name, void *user_data)
@@ -332,9 +449,6 @@ typedef int (*pkgmgrinfo_app_splash_screen_list_cb)(const char *src,
                const char *indicatordisplay, const char *operation,
                const char *color_depth, void *user_data);
 
-typedef int (*pkgmgrinfo_handler)(uid_t target_uid, int req_id, const char *pkg_type,
-                               const char *pkgid, const char *key,
-                               const char *val, const void *pmsg, void *data);
 
 
 /**
@@ -350,11 +464,12 @@ typedef enum {
  * @brief Application Component Types
  */
 typedef enum {
-       PMINFO_ALL_APP = 0,     /**< All Application*/
-       PMINFO_UI_APP,          /**< UI Application*/
-       PMINFO_SVC_APP,         /**< Service Application*/
-       PMINFO_WIDGET_APP,      /**< Widget Application*/
-       PMINFO_WATCH_APP,  /**< Watch Application*/
+       PMINFO_ALL_APP = 0,             /**< All Application*/
+       PMINFO_UI_APP,                  /**< UI Application*/
+       PMINFO_SVC_APP,                 /**< Service Application*/
+       PMINFO_WIDGET_APP,              /**< Widget Application*/
+       PMINFO_WATCH_APP,               /**< Watch Application*/
+       PMINFO_COMPONENT_BASED_APP,     /**< Component-based Application (Since 5.5)*/
 } pkgmgrinfo_app_component;
 
 /**
@@ -363,6 +478,7 @@ typedef enum {
 typedef enum {
        PMINFO_INTERNAL_STORAGE = 0,            /**< Internal Storage*/
        PMINFO_EXTERNAL_STORAGE = 1,            /**< External Storage*/
+       PMINFO_EXTENDED_STORAGE = 2,            /**< Extended Storage*/
 } pkgmgrinfo_installed_storage;
 
 /**
@@ -381,26 +497,30 @@ typedef enum {
 } pkgmgrinfo_cert_type;
 
 /**
+ * @brief version comparison Types
+ */
+typedef enum {
+       PMINFO_VERSION_OLD = -1,
+       PMINFO_VERSION_SAME,
+       PMINFO_VERSION_NEW,
+} pkgmgrinfo_version_compare_type;
+
+/**
  * @brief Install Location Types to be used when setting data in DB
  */
 typedef enum {
        INSTALL_INTERNAL = 0,           /**< Internal Installation*/
        INSTALL_EXTERNAL,               /**< External Installation*/
+       INSTALL_EXTENDED,               /**< Extended Installation*/
 } INSTALL_LOCATION;
 
- /**
 * @brief permission Types
 */
+/**
+ * @brief permission Types
+ */
 typedef enum {
        PMINFO_PERMISSION_NORMAL = 0,           /**< permission normal*/
        PMINFO_PERMISSION_SIGNATURE,            /**< permission type is signature*/
        PMINFO_PERMISSION_PRIVILEGE,            /**< permission type is privilege*/
 } pkgmgrinfo_permission_type;
 
-typedef enum {
-       PMINFO_REQUEST = 0,
-       PMINFO_LISTENING,
-       PMINFO_BROADCAST,
-} pkgmgrinfo_client_type;
-
 #endif