tizen 2.3.1 release
[framework/web/wearable/wrt-plugins-tizen.git] / src / Package / plugin_config.cpp
1 //
2 // Tizen Web Device API
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 #include <Commons/FunctionDefinition.h>
19 #include <Commons/FunctionDeclaration.h>
20 #include <iostream>
21 #include <Commons/Exception.h>
22 #include <dpl/exception.h>
23 #include <map>
24
25 #include "plugin_config.h"
26
27 #define PACKAGE_FEATURE_API_INSTALL        "http://tizen.org/privilege/packagemanager.install"
28 #define PACKAGE_FEATURE_API_INFO        "http://tizen.org/privilege/package.info"
29
30 #define PACKAGE_DEVICE_CAP_INSTALL        "packagemanager.install"
31 #define PACKAGE_DEVICE_CAP_INFO            "package.info"
32
33 using namespace WrtDeviceApis::Commons;
34
35 namespace DeviceAPI {
36 namespace Package {
37
38 static FunctionMapping createPackageFunctions();
39
40 static FunctionMapping PackageFunctions =
41     createPackageFunctions();
42
43 #pragma GCC visibility push(default)
44
45 DEFINE_FUNCTION_GETTER(Package, PackageFunctions);
46
47 #pragma GCC visibility pop
48
49 static FunctionMapping createPackageFunctions()
50 {
51     /**
52      * Device capabilities
53      */
54     ACE_CREATE_DEVICE_CAP(DEVICE_CAP_PACKAGE_INSTALL, PACKAGE_DEVICE_CAP_INSTALL);
55     ACE_CREATE_DEVICE_CAP(DEVICE_CAP_PACKAGE_INFO, PACKAGE_DEVICE_CAP_INFO);
56
57     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_PACKAGE_INSTALL);
58     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_PACKAGE_INFO);
59     ACE_ADD_DEVICE_CAP(DEVICE_LIST_PACKAGE_INSTALL, DEVICE_CAP_PACKAGE_INSTALL);
60     ACE_ADD_DEVICE_CAP(DEVICE_LIST_PACKAGE_INFO, DEVICE_CAP_PACKAGE_INFO);
61
62     /**
63      * Api Features
64      */
65     ACE_CREATE_FEATURE(FEATURE_PACKAGE_INSTALL, PACKAGE_FEATURE_API_INSTALL);
66     ACE_CREATE_FEATURE(FEATURE_PACKAGE_INFO, PACKAGE_FEATURE_API_INFO);
67
68     ACE_CREATE_FEATURE_LIST(PACKAGE_FEATURES_PACKAGE_INSTALL);
69     ACE_ADD_API_FEATURE(PACKAGE_FEATURES_PACKAGE_INSTALL, FEATURE_PACKAGE_INSTALL);
70
71     ACE_CREATE_FEATURE_LIST(PACKAGE_FEATURES_PACKAGE_INFO);
72     ACE_ADD_API_FEATURE(PACKAGE_FEATURES_PACKAGE_INFO, FEATURE_PACKAGE_INFO);
73
74     /**
75      * Functions
76      */
77     FunctionMapping packageMapping;
78
79     // install
80     AceFunction installFunc = ACE_CREATE_FUNCTION(
81             FUNCTION_INSTALL,
82             PACKAGE_FUNCTION_API_INSTALL,
83             PACKAGE_FEATURES_PACKAGE_INSTALL,
84             DEVICE_LIST_PACKAGE_INSTALL);
85
86     packageMapping.insert(std::make_pair(
87                 PACKAGE_FUNCTION_API_INSTALL,
88                 installFunc));
89
90     // uninstall
91     AceFunction uninstallFunc = ACE_CREATE_FUNCTION(
92             FUNCTION_UNINSTALL,
93             PACKAGE_FUNCTION_API_UNINSTALL,
94             PACKAGE_FEATURES_PACKAGE_INSTALL,
95             DEVICE_LIST_PACKAGE_INSTALL);
96
97     packageMapping.insert(std::make_pair(
98                 PACKAGE_FUNCTION_API_UNINSTALL,
99                 uninstallFunc));
100
101     // getPackageInfo
102     AceFunction getPackageInfoFunc = ACE_CREATE_FUNCTION(
103             FUNCTION_GET_PACKAGE_INFO,
104             PACKAGE_FUNCTION_API_GET_PACKAGE_INFO,
105             PACKAGE_FEATURES_PACKAGE_INFO,
106             DEVICE_LIST_PACKAGE_INFO);
107
108     packageMapping.insert(std::make_pair(
109                 PACKAGE_FUNCTION_API_GET_PACKAGE_INFO,
110                 getPackageInfoFunc));
111
112     // getPackagesInfo
113     AceFunction getPackagesInfoFunc = ACE_CREATE_FUNCTION(
114             FUNCTION_GET_PACKAGES_INFO,
115             PACKAGE_FUNCTION_API_GET_PACKAGES_INFO,
116             PACKAGE_FEATURES_PACKAGE_INFO,
117             DEVICE_LIST_PACKAGE_INFO);
118
119     packageMapping.insert(std::make_pair(
120                 PACKAGE_FUNCTION_API_GET_PACKAGES_INFO,
121                 getPackagesInfoFunc));
122
123     // setPackageInfoEventListener
124     AceFunction setPackageInfoEventListenerFunc = ACE_CREATE_FUNCTION(
125             FUNCTION_SET_PACKAGE_INFO_EVENT_LISTENER,
126             PACKAGE_FUNCTION_API_SET_PACKAGE_INFO_EVENT_LISTENER,
127             PACKAGE_FEATURES_PACKAGE_INFO,
128             DEVICE_LIST_PACKAGE_INFO);
129
130     packageMapping.insert(std::make_pair(
131                 PACKAGE_FUNCTION_API_SET_PACKAGE_INFO_EVENT_LISTENER,
132                 setPackageInfoEventListenerFunc));
133
134     // unsetPackageInfoEventListener
135     AceFunction unsetPackageInfoEventListenerFunc = ACE_CREATE_FUNCTION(
136             FUNCTION_UNSET_PACKAGE_INFO_EVENT_LISTENER,
137             PACKAGE_FUNCTION_API_UNSET_PACKAGE_INFO_EVENT_LISTENER,
138             PACKAGE_FEATURES_PACKAGE_INFO,
139             DEVICE_LIST_PACKAGE_INFO);
140
141     packageMapping.insert(std::make_pair(
142                 PACKAGE_FUNCTION_API_UNSET_PACKAGE_INFO_EVENT_LISTENER,
143                 unsetPackageInfoEventListenerFunc));
144
145     return packageMapping;
146 }
147
148 }
149 }