Add Foreach depdency API for Archiveinfo
[platform/core/appfw/pkgmgr-info.git] / src / pkgmgrinfo_private.h
index fd2b636..47746bd 100644 (file)
@@ -74,8 +74,6 @@
 #define INTERFACE_NAME "org.tizen.system.deviced.Mmc"
 #define METHOD_NAME "RequestMountApp2ext"
 
-#define GET_DB(X)  (X).dbHandle
-
 /*String properties for filtering based on package info*/
 typedef enum _pkgmgrinfo_pkginfo_filter_prop_str {
        E_PMINFO_PKGINFO_PROP_PACKAGE_MIN_STR = 101,
@@ -103,7 +101,8 @@ typedef enum _pkgmgrinfo_pkginfo_filter_prop_bool {
        E_PMINFO_PKGINFO_PROP_PACKAGE_SUPPORT_DISABLE,
        E_PMINFO_PKGINFO_PROP_PACKAGE_DISABLE,
        E_PMINFO_PKGINFO_PROP_PACKAGE_CHECK_STORAGE,
-       E_PMINFO_PKGINFO_PROP_PACKAGE_MAX_BOOL = E_PMINFO_PKGINFO_PROP_PACKAGE_CHECK_STORAGE
+       E_PMINFO_PKGINFO_PROP_PACKAGE_SYSTEM,
+       E_PMINFO_PKGINFO_PROP_PACKAGE_MAX_BOOL = E_PMINFO_PKGINFO_PROP_PACKAGE_SYSTEM
 } pkgmgrinfo_pkginfo_filter_prop_bool;
 
 /*Integer properties for filtering based on package info*/
@@ -129,7 +128,8 @@ typedef enum _pkgmgrinfo_appinfo_filter_prop_str {
        E_PMINFO_APPINFO_PROP_APP_SCREENREADER,
        E_PMINFO_APPINFO_PROP_APP_PACKAGE,
        E_PMINFO_APPINFO_PROP_APP_INSTALLED_STORAGE,
-       E_PMINFO_APPINFO_PROP_APP_MAX_STR = E_PMINFO_APPINFO_PROP_APP_INSTALLED_STORAGE
+       E_PMINFO_APPINFO_PROP_PRIVILEGE,
+       E_PMINFO_APPINFO_PROP_APP_MAX_STR = E_PMINFO_APPINFO_PROP_PRIVILEGE
 } pkgmgrinfo_appinfo_filter_prop_str;
 
 /*Boolean properties for filtering based on app info*/
@@ -145,7 +145,8 @@ typedef enum _pkgmgrinfo_appinfo_filter_prop_bool {
        E_PMINFO_APPINFO_PROP_APP_DISABLE,
        E_PMINFO_APPINFO_PROP_APP_SUPPORT_DISABLE,
        E_PMINFO_APPINFO_PROP_APP_CHECK_STORAGE,
-       E_PMINFO_APPINFO_PROP_APP_MAX_BOOL = E_PMINFO_APPINFO_PROP_APP_CHECK_STORAGE
+       E_PMINFO_APPINFO_PROP_PKG_DISABLE,
+       E_PMINFO_APPINFO_PROP_APP_MAX_BOOL = E_PMINFO_APPINFO_PROP_PKG_DISABLE
 } pkgmgrinfo_appinfo_filter_prop_bool;
 
 /*Integer properties for filtering based on app info*/
@@ -174,9 +175,14 @@ typedef enum _pkgmgrinfo_appinfo_join_flag {
        E_PMINFO_APPINFO_JOIN_CATEGORY = 0x0002,
        E_PMINFO_APPINFO_JOIN_APP_CONTROL = 0x0004,
        E_PMINFO_APPINFO_JOIN_METADATA = 0x0008,
-       E_PMINFO_APPINFO_JOIN_APPINFO_FOR_UID = 0x0010,
+       E_PMINFO_APPINFO_JOIN_PRIVILEGE = 0x0010,
 } pkgmgrinfo_appinfo_join_flag;
 
+typedef enum _pkgmgrinfo_appinfo_disable_type {
+       E_APPINFO_DISABLE_TYPE_PKG = 0,
+       E_APPINFO_DISABLE_TYPE_APP
+} pkgmgrinfo_appinfo_disable_type;
+
 typedef struct _pkgmgr_pkginfo_x {
        uid_t uid;
        package_x *pkg_info;
@@ -232,6 +238,7 @@ typedef struct _db_handle {
 #define PKG_URL_STRING_LEN_MAX 1024
 #define PKG_LABEL_STRING_LEN_MAX 128
 #define PKG_PATH_STRING_LEN_MAX 512
+#define PKG_DEP_TYPE_STRING_LEN_MAX 128
 
 typedef struct _package_manager_pkg_info_t {
        char pkg_type[PKG_TYPE_STRING_LEN_MAX];
@@ -241,6 +248,12 @@ typedef struct _package_manager_pkg_info_t {
        struct _package_manager_pkg_info_t *next;
 } package_manager_pkg_info_t;
 
+typedef struct _package_manager_pkg_dependency_info_t {
+       char pkgid[PKG_NAME_STRING_LEN_MAX];
+       char type[PKG_DEP_TYPE_STRING_LEN_MAX];
+       char required_version[PKG_VERSION_STRING_LEN_MAX];
+} pkg_dependency_info_t;
+
 typedef struct _package_manager_pkg_detail_info_t {
        char pkg_type[PKG_TYPE_STRING_LEN_MAX];
        char pkg_name[PKG_NAME_STRING_LEN_MAX];
@@ -260,6 +273,7 @@ typedef struct _package_manager_pkg_detail_info_t {
        char *icon_buf;
        int icon_size;
        GList *privilege_list;
+       GList *dependency_list;
 } package_manager_pkg_detail_info_t;
 
 typedef void (*_pkg_plugin_unload)(void);
@@ -284,9 +298,6 @@ typedef struct _pkg_plugin_set {
        get_pkg_detail_info_from_package;
 } pkg_plugin_set;
 
-extern __thread db_handle manifest_db;
-extern __thread db_handle cert_db;
-
 pkgmgrinfo_pkginfo_filter_prop_str _pminfo_pkginfo_convert_to_prop_str(const char *property);
 pkgmgrinfo_pkginfo_filter_prop_int _pminfo_pkginfo_convert_to_prop_int(const char *property);
 pkgmgrinfo_pkginfo_filter_prop_bool _pminfo_pkginfo_convert_to_prop_bool(const char *property);
@@ -298,10 +309,6 @@ pkgmgrinfo_appinfo_filter_prop_bool _pminfo_appinfo_convert_to_prop_bool(const c
 pkgmgrinfo_pkginfo_filter_prop_range _pminfo_pkginfo_convert_to_prop_range(const char *property);
 
 int _check_create_cert_db(void);
-int __close_manifest_db(void);
-int __open_manifest_db(uid_t uid, bool readonly);
-int __close_cert_db(void);
-int __open_cert_db(uid_t uid, bool readonly);
 void _save_column_int(sqlite3_stmt *stmt, int idx, int *i);
 void _save_column_str(sqlite3_stmt *stmt, int idx, char **str);
 char *_get_system_locale(void);
@@ -314,6 +321,7 @@ int __appinfo_check_installed_storage(application_x *appinfo);
 int __open_db(const char *path, sqlite3 **db, int flags);
 char *__get_type_from_path(const char *pkg_path);
 pkg_plugin_set *__load_library(const char *pkg_type);
+void __unload_library(const char *pkg_type);
 
 #define GLOBAL_USER tzplatform_getuid(TZ_SYS_GLOBALAPP_USER)
 #define REGULAR_USER 5000