X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fpkgmgrinfo_private.h;h=47746bd825391ff4cec6fdf7b4688a5ba8d1e41a;hb=5e622b967bbcffd42a99ad5f56a0a2a83a20303b;hp=9892deea3ad9183d1e81095dc4a20a4cd13899c2;hpb=0423a4ac6e4f89e1f4d3c03424c0c56469694ef8;p=platform%2Fcore%2Fappfw%2Fpkgmgr-info.git diff --git a/src/pkgmgrinfo_private.h b/src/pkgmgrinfo_private.h index 9892dee..47746bd 100644 --- a/src/pkgmgrinfo_private.h +++ b/src/pkgmgrinfo_private.h @@ -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, @@ -102,7 +100,9 @@ typedef enum _pkgmgrinfo_pkginfo_filter_prop_bool { E_PMINFO_PKGINFO_PROP_PACKAGE_NODISPLAY_SETTING, E_PMINFO_PKGINFO_PROP_PACKAGE_SUPPORT_DISABLE, E_PMINFO_PKGINFO_PROP_PACKAGE_DISABLE, - E_PMINFO_PKGINFO_PROP_PACKAGE_MAX_BOOL = E_PMINFO_PKGINFO_PROP_PACKAGE_DISABLE + 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*/ @@ -128,9 +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_METADATA_KEY, - E_PMINFO_APPINFO_PROP_APP_METADATA_VALUE, - E_PMINFO_APPINFO_PROP_APP_MAX_STR = E_PMINFO_APPINFO_PROP_APP_METADATA_VALUE + 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,15 +144,16 @@ typedef enum _pkgmgrinfo_appinfo_filter_prop_bool { E_PMINFO_APPINFO_PROP_APP_UI_GADGET, E_PMINFO_APPINFO_PROP_APP_DISABLE, E_PMINFO_APPINFO_PROP_APP_SUPPORT_DISABLE, - E_PMINFO_APPINFO_PROP_APP_MAX_BOOL = E_PMINFO_APPINFO_PROP_APP_SUPPORT_DISABLE + 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*/ typedef enum _pkgmgrinfo_appinfo_filter_prop_int { /*Currently No Fields*/ E_PMINFO_APPINFO_PROP_APP_MIN_INT = 601, - E_PMINFO_APPINFO_PROP_APP_DISABLE_FOR_USER = E_PMINFO_APPINFO_PROP_APP_MIN_INT, - E_PMINFO_APPINFO_PROP_APP_SUPPORT_MODE, + E_PMINFO_APPINFO_PROP_APP_SUPPORT_MODE = E_PMINFO_APPINFO_PROP_APP_MIN_INT, E_PMINFO_APPINFO_PROP_APP_MAX_INT = E_PMINFO_APPINFO_PROP_APP_SUPPORT_MODE } pkgmgrinfo_appinfo_filter_prop_int; @@ -175,8 +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_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; @@ -194,6 +200,7 @@ typedef struct _pkgmgr_appinfo_x { typedef struct _pkgmgrinfo_filter_x { uid_t uid; GSList *list; + GSList *list_metadata; } pkgmgrinfo_filter_x; typedef struct _pkgmgrinfo_node_x { @@ -202,6 +209,11 @@ typedef struct _pkgmgrinfo_node_x { char *value; } pkgmgrinfo_node_x; +typedef struct _pkgmgrinfo_metadata_node_x { + char *key; + char *value; +} pkgmgrinfo_metadata_node_x; + typedef struct _pkgmgrinfo_appcontrol_x { int operation_count; int uri_count; @@ -218,8 +230,73 @@ typedef struct _db_handle { int ref; } db_handle; -extern __thread db_handle manifest_db; -extern __thread db_handle cert_db; +/* TODO: refine below structures */ +#define PKG_TYPE_STRING_LEN_MAX 128 +#define PKG_NAME_STRING_LEN_MAX 128 +#define PKG_VERSION_STRING_LEN_MAX 128 +#define PKG_VALUE_STRING_LEN_MAX 512 +#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]; + char pkg_name[PKG_NAME_STRING_LEN_MAX]; + char pkgid[PKG_NAME_STRING_LEN_MAX]; + char version[PKG_VERSION_STRING_LEN_MAX]; + 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]; + char pkgid[PKG_NAME_STRING_LEN_MAX]; + char version[PKG_VERSION_STRING_LEN_MAX]; + char api_version[PKG_VERSION_STRING_LEN_MAX]; + char pkg_description[PKG_VALUE_STRING_LEN_MAX]; + char min_platform_version[PKG_VERSION_STRING_LEN_MAX]; + time_t installed_time; /* installed time it must be GMT+0 time */ + int installed_size; /* installed total size */ + int app_size; /* installed app size */ + int data_size; /* data size which is made on run time */ + char optional_id[PKG_NAME_STRING_LEN_MAX]; /*package ID if exists */ + void *pkg_optional_info; + char label[PKG_LABEL_STRING_LEN_MAX]; + char author[PKG_VALUE_STRING_LEN_MAX]; + char *icon_buf; + int icon_size; + GList *privilege_list; + GList *dependency_list; +} package_manager_pkg_detail_info_t; + +typedef void (*_pkg_plugin_unload)(void); +typedef int (*_pkg_plugin_pkg_is_installed) (const char *pkgid); +typedef int (*_pkg_plugin_get_installed_pkg_list)( + const char *category, const char *option, + package_manager_pkg_info_t **list, int *count); +typedef int (*_pkg_plugin_get_pkg_detail_info)(const char *pkgid, + package_manager_pkg_detail_info_t *pkg_detail_info); +typedef int (*_pkg_plugin_get_pkg_detail_info_from_package)( + const char *pkg_path, + package_manager_pkg_detail_info_t *pkg_detail_info); + +typedef struct _pkg_plugin_set { + char pkg_type[PKG_TYPE_STRING_LEN_MAX]; + void *plugin_handle; + _pkg_plugin_unload plugin_on_unload; + _pkg_plugin_pkg_is_installed pkg_is_installed; + _pkg_plugin_get_installed_pkg_list get_installed_pkg_list; + _pkg_plugin_get_pkg_detail_info get_pkg_detail_info; + _pkg_plugin_get_pkg_detail_info_from_package + get_pkg_detail_info_from_package; +} pkg_plugin_set; 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); @@ -231,19 +308,20 @@ 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(sqlite3 *certdb); -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); +int _check_create_cert_db(void); 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); -int __get_filter_condition(gpointer data, char **condition, GList **param); +int __get_filter_condition(gpointer data, uid_t uid, char **condition, GList **param); +int __get_metadata_filter_condition(gpointer data, char **condition, GList **param); int _add_icon_info_into_list(const char *locale, char *value, GList **icon); int _add_label_info_into_list(const char *locale, char *value, GList **label); int __pkginfo_check_installed_storage(package_x *pkginfo); 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