+/* 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
+
+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_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;
+} 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;
+