X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fpkgmgrinfo_private.h;h=47746bd825391ff4cec6fdf7b4688a5ba8d1e41a;hb=5e622b967bbcffd42a99ad5f56a0a2a83a20303b;hp=5229f322126cfb859e7cfb8b217d989b74601f09;hpb=d3b9d79c0f3a36f45b091cf3375c7ccff9950680;p=platform%2Fcore%2Fappfw%2Fpkgmgr-info.git diff --git a/src/pkgmgrinfo_private.h b/src/pkgmgrinfo_private.h index 5229f32..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, @@ -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,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*/ @@ -147,14 +145,15 @@ 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*/ typedef enum _pkgmgrinfo_appinfo_filter_prop_int { /*Currently No Fields*/ E_PMINFO_APPINFO_PROP_APP_MIN_INT = 601, - 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; @@ -176,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; @@ -226,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); @@ -239,11 +308,7 @@ 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); @@ -254,6 +319,9 @@ 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