1 // Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include <package-manager.h>
6 #include <package-manager-types.h>
7 #include <package-manager-plugin.h>
9 #include "base/logging.h"
10 #include "xwalk/application/tools/tizen/xwalk_backend_plugin.h"
12 #define API_EXPORT __attribute__((visibility("default")))
17 API_EXPORT int pkg_plugin_on_load(pkg_plugin_set *set);
19 void pkg_plugin_on_unload();
20 int pkg_plugin_get_app_detail_info(
21 const char* pkg_name, package_manager_pkg_detail_info_t* pkg_detail_info);
22 int pkg_plugin_get_app_detail_info_from_package(
23 const char* pkg_path, package_manager_pkg_detail_info_t* pkg_detail_info);
24 int pkg_plugin_app_is_installed(const char* pkg_name);
25 int pkg_plugin_get_installed_apps_list(
26 const char* category, const char* option, package_manager_pkg_info_t** list,
30 int pkg_plugin_on_load(pkg_plugin_set* set) {
31 LOG(INFO) << "Crosswalk backend plugin - load";
36 memset(set, 0x00, sizeof(pkg_plugin_set));
38 set->plugin_on_unload = pkg_plugin_on_unload;
39 set->pkg_is_installed = pkg_plugin_app_is_installed;
40 set->get_installed_pkg_list = pkg_plugin_get_installed_apps_list;
41 set->get_pkg_detail_info = pkg_plugin_get_app_detail_info;
42 set->get_pkg_detail_info_from_package =
43 pkg_plugin_get_app_detail_info_from_package;
45 // FIXME: store load set which contains
46 // pkgmgr sets pkg_type after calling 'pkg_plugin_on_load'
47 // we need to store load set to recover type of package
48 // for which backendlib was loaded - wgt or xpk
49 PkgmgrBackendPlugin::GetInstance()->SetLoadSet(set);
54 void pkg_plugin_on_unload() {
55 LOG(INFO) << "Crosswalk backend plugin ("
56 << PkgmgrBackendPlugin::GetInstance()->type()
60 int pkg_plugin_get_app_detail_info(
61 const char *pkg_name, package_manager_pkg_detail_info_t *pkg_detail_info) {
62 LOG(INFO) << "Crosswalk backend plugin ("
63 << PkgmgrBackendPlugin::GetInstance()->type()
64 << ") - pkg_plugin_get_app_detail_info";
66 return PkgmgrBackendPlugin::GetInstance()->DetailedInfo(pkg_name,
70 int pkg_plugin_get_app_detail_info_from_package(
71 const char *pkg_path, package_manager_pkg_detail_info_t *pkg_detail_info) {
72 LOG(INFO) << "Crosswalk backend plugin ("
73 << PkgmgrBackendPlugin::GetInstance()->type()
74 << ") - pkg_plugin_get_app_detail_info_from_package";
76 return PkgmgrBackendPlugin::GetInstance()->DetailedInfoPkg(pkg_path,
80 int pkg_plugin_app_is_installed(const char *pkg_name) {
81 LOG(INFO) << "Crosswalk backend plugin ("
82 << PkgmgrBackendPlugin::GetInstance()->type()
83 << ") - pkg_plugin_app_is_installed";
85 return PkgmgrBackendPlugin::GetInstance()->IsAppInstalled(pkg_name);
88 int pkg_plugin_get_installed_apps_list(const char* category,
90 package_manager_pkg_info_t** list,
92 LOG(INFO) << "Crosswalk backend plugin ("
93 << PkgmgrBackendPlugin::GetInstance()->type()
94 << ") - pkg_plugin_get_installed_apps_list";
96 return PkgmgrBackendPlugin::GetInstance()->AppsList(list, count);