95e28c2565e76edf46b2237e5e9ff669ff04aad1
[platform/framework/web/crosswalk.git] / src / xwalk / application / tools / tizen / xwalk_backendlib.cc
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.
4
5 #include <package-manager.h>
6 #include <package-manager-types.h>
7 #include <package-manager-plugin.h>
8
9 #include "base/logging.h"
10 #include "xwalk/application/tools/tizen/xwalk_backend_plugin.h"
11
12 #define API_EXPORT __attribute__((visibility("default")))
13
14 extern "C" {
15
16 // exported function
17 API_EXPORT int pkg_plugin_on_load(pkg_plugin_set *set);
18
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,
27     int* count);
28
29 // definitions
30 int pkg_plugin_on_load(pkg_plugin_set* set) {
31   LOG(INFO) << "Crosswalk backend plugin - load";
32
33   if (!set) {
34     return FALSE;
35   }
36   memset(set, 0x00, sizeof(pkg_plugin_set));
37
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;
44
45   return 0;
46 }
47
48 void pkg_plugin_on_unload() {
49   LOG(INFO) << "Crosswalk backend plugin - unload";
50 }
51
52 int pkg_plugin_get_app_detail_info(
53     const char *pkg_name, package_manager_pkg_detail_info_t *pkg_detail_info) {
54   LOG(INFO) << "Crosswalk backend plugin - pkg_plugin_get_app_detail_info";
55
56   return PkgmgrBackendPlugin::GetInstance()->DetailedInfo(pkg_name,
57                                                           pkg_detail_info);
58 }
59
60 int pkg_plugin_get_app_detail_info_from_package(
61     const char *pkg_path, package_manager_pkg_detail_info_t *pkg_detail_info) {
62   LOG(INFO)
63     << "Crosswalk backend plugin - pkg_plugin_get_app_detail_info_from_package";
64
65   return PkgmgrBackendPlugin::GetInstance()->DetailedInfoPkg(pkg_path,
66                                                              pkg_detail_info);
67 }
68
69 int pkg_plugin_app_is_installed(const char *pkg_name) {
70   LOG(INFO) << "Crosswalk backend plugin - pkg_plugin_app_is_installed";
71
72   return PkgmgrBackendPlugin::GetInstance()->IsAppInstalled(pkg_name);
73 }
74
75 int pkg_plugin_get_installed_apps_list(const char* category,
76                                        const char* option,
77                                        package_manager_pkg_info_t** list,
78                                        int* count) {
79   LOG(INFO) << "Crosswalk backend plugin - pkg_plugin_get_installed_apps_list";
80
81   return PkgmgrBackendPlugin::GetInstance()->AppsList(list, count);
82 }
83
84 }