2 // Tizen Web Device API
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
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
9 // http://www.apache.org/licenses/LICENSE-2.0
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.
19 #include <Commons/FunctionDefinition.h>
20 #include <Commons/FunctionDeclaration.h>
22 #include <Commons/Exception.h>
23 #include <dpl/exception.h>
26 #include "plugin_config.h"
28 #define APPLICATION_FEATURE_API_LAUNCH "http://tizen.org/privilege/application.launch"
29 #define APPLICATION_FEATURE_API_KILL "http://tizen.org/privilege/application.kill"
30 #define APPLICATION_FEATURE_API_KILL2 "http://tizen.org/privilege/appmanager.kill"
31 #define APPLICATION_FEATURE_API_CERT "http://tizen.org/privilege/appmanager.certificate"
33 // for backword compatibility
34 #define APPLICATION_FEATURE_API_READ "http://tizen.org/privilege/application.read"
35 //#define APPLICATION_FEATURE_API_INSTALL "http://tizen.org/privilege/application.install"
37 #define APPLICATION_DEVICE_CAP_LAUNCH "application.launch"
38 #define APPLICATION_DEVICE_CAP_KILL "appmanager.kill"
39 #define APPLICATION_DEVICE_CAP_CERT "appmanager.certificate"
41 //#define APPLICATION_DEVICE_CAP_READ "application.read"
42 //#define APPLICATION_DEVICE_CAP_INSTALL "application.install"
44 using namespace WrtDeviceApis::Commons;
47 namespace Application {
49 static FunctionMapping createApplicationFunctions();
51 static FunctionMapping ApplicationFunctions =
52 createApplicationFunctions();
54 #pragma GCC visibility push(default)
56 DEFINE_FUNCTION_GETTER(Application, ApplicationFunctions);
58 #pragma GCC visibility pop
60 static FunctionMapping createApplicationFunctions()
65 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_APPLICATION_LAUNCH, APPLICATION_DEVICE_CAP_LAUNCH);
66 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_APPLICATION_KILL, APPLICATION_DEVICE_CAP_KILL);
67 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_APPLICATION_CERT, APPLICATION_DEVICE_CAP_CERT);
69 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_APPLICATION_LAUNCH);
70 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_APPLICATION_KILL);
71 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_APPLICATION_CERT);
72 ACE_ADD_DEVICE_CAP(DEVICE_LIST_APPLICATION_LAUNCH, DEVICE_CAP_APPLICATION_LAUNCH);
73 ACE_ADD_DEVICE_CAP(DEVICE_LIST_APPLICATION_KILL, DEVICE_CAP_APPLICATION_KILL);
74 ACE_ADD_DEVICE_CAP(DEVICE_LIST_APPLICATION_CERT, DEVICE_CAP_APPLICATION_CERT);
77 ACE_CREATE_DEVICE_CAPS_LIST(EMPTY_DEVICE_LIST);
79 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_APPLICATION_READ, APPLICATION_DEVICE_CAP_READ);
80 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_APPLICATION_INSTALL, APPLICATION_DEVICE_CAP_INSTALL);
81 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_APPLICATION_READ);
82 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_APPLICATION_INSTALL);
83 ACE_ADD_DEVICE_CAP(DEVICE_LIST_APPLICATION_READ, DEVICE_CAP_APPLICATION_READ);
84 ACE_ADD_DEVICE_CAP(DEVICE_LIST_APPLICATION_INSTALL, DEVICE_CAP_APPLICATION_INSTALL);
90 ACE_CREATE_FEATURE(FEATURE_APPLICATION_LAUNCH, APPLICATION_FEATURE_API_LAUNCH);
91 ACE_CREATE_FEATURE(FEATURE_APPLICATION_KILL, APPLICATION_FEATURE_API_KILL);
92 ACE_CREATE_FEATURE(FEATURE_APPLICATION_KILL2, APPLICATION_FEATURE_API_KILL2);
93 ACE_CREATE_FEATURE(FEATURE_APPLICATION_CERT, APPLICATION_FEATURE_API_CERT);
94 ACE_CREATE_FEATURE(FEATURE_APPLICATION_READ, APPLICATION_FEATURE_API_READ);
97 ACE_CREATE_FEATURE_LIST(APPLICATION_FEATURES_APPLICATION_LAUNCH);
98 ACE_ADD_API_FEATURE(APPLICATION_FEATURES_APPLICATION_LAUNCH, FEATURE_APPLICATION_LAUNCH);
100 ACE_CREATE_FEATURE_LIST(APPLICATION_FEATURES_APPLICATION_KILL);
101 ACE_ADD_API_FEATURE(APPLICATION_FEATURES_APPLICATION_KILL, FEATURE_APPLICATION_KILL);
102 ACE_ADD_API_FEATURE(APPLICATION_FEATURES_APPLICATION_KILL, FEATURE_APPLICATION_KILL2);
104 ACE_CREATE_FEATURE_LIST(APPLICATION_FEATURES_APPLICATION_CERT);
105 ACE_ADD_API_FEATURE(APPLICATION_FEATURES_APPLICATION_CERT, FEATURE_APPLICATION_CERT);
106 ACE_ADD_API_FEATURE(APPLICATION_FEATURES_APPLICATION_CERT, FEATURE_APPLICATION_READ);
109 ACE_CREATE_FEATURE(FEATURE_APPLICATION_READ, APPLICATION_FEATURE_API_READ);
110 ACE_CREATE_FEATURE(FEATURE_APPLICATION_INSTALL, APPLICATION_FEATURE_API_INSTALL);
112 ACE_CREATE_FEATURE_LIST(APPLICATION_FEATURES_APPLICATION_READ);
113 ACE_ADD_API_FEATURE(APPLICATION_FEATURES_APPLICATION_READ, FEATURE_APPLICATION_READ);
115 ACE_CREATE_FEATURE_LIST(APPLICATION_FEATURES_APPLICATION_INSTALL);
116 ACE_ADD_API_FEATURE(APPLICATION_FEATURES_APPLICATION_INSTALL, FEATURE_APPLICATION_INSTALL);
122 FunctionMapping applicationMapping;
125 AceFunction launchFunc = ACE_CREATE_FUNCTION(
127 APPLICATION_FUNCTION_API_LAUNCH,
128 APPLICATION_FEATURES_APPLICATION_LAUNCH,
129 DEVICE_LIST_APPLICATION_LAUNCH);
131 applicationMapping.insert(std::make_pair(
132 APPLICATION_FUNCTION_API_LAUNCH,
136 AceFunction launchAppControlFunc = ACE_CREATE_FUNCTION(
137 FUNCTION_LAUNCH_APP_CONTROL,
138 APPLICATION_FUNCTION_API_LAUNCH_APP_CONTROL,
139 APPLICATION_FEATURES_APPLICATION_LAUNCH,
140 DEVICE_LIST_APPLICATION_LAUNCH);
142 applicationMapping.insert(std::make_pair(
143 APPLICATION_FUNCTION_API_LAUNCH_APP_CONTROL,
144 launchAppControlFunc));
147 AceFunction killFunc = ACE_CREATE_FUNCTION(
149 APPLICATION_FUNCTION_API_KILL,
150 APPLICATION_FEATURES_APPLICATION_KILL,
151 DEVICE_LIST_APPLICATION_KILL);
153 applicationMapping.insert(std::make_pair(
154 APPLICATION_FUNCTION_API_KILL,
159 AceFunction getAppCertsFunc = ACE_CREATE_FUNCTION(
160 FUNCTION_GET_APP_CERTS,
161 APPLICATION_FUNCTION_API_GET_APP_CERTS,
162 APPLICATION_FEATURES_APPLICATION_CERT,
163 DEVICE_LIST_APPLICATION_CERT);
165 applicationMapping.insert(std::make_pair(
166 APPLICATION_FUNCTION_API_GET_APP_CERTS,
173 AceFunction setUserAgentFunc = ACE_CREATE_FUNCTION(
174 FUNCTION_SET_USER_AGENT,
175 APPLICATION_FUNCTION_API_SET_USER_AGENT,
176 APPLICATION_FEATURES_APPLICATION_READ,
179 applicationMapping.insert(std::make_pair(
180 APPLICATION_FUNCTION_API_SET_USER_AGENT,
184 AceFunction getAppsInfoFunc = ACE_CREATE_FUNCTION(
185 FUNCTION_GET_APPLICATION_INFORMATIONS,
186 APPLICATION_FUNCTION_API_GET_APPS_INFO,
187 APPLICATION_FEATURES_APPLICATION_READ,
188 DEVICE_LIST_APPLICATION_READ);
190 applicationMapping.insert(std::make_pair(
191 APPLICATION_FUNCTION_API_GET_APPS_INFO,
195 AceFunction getAppInfoFunc = ACE_CREATE_FUNCTION(
196 FUNCTION_GET_APPLICATION_INFORMATION,
197 APPLICATION_FUNCTION_API_GET_APP_INFO,
198 APPLICATION_FEATURES_APPLICATION_READ,
199 DEVICE_LIST_APPLICATION_READ);
201 applicationMapping.insert(std::make_pair(
202 APPLICATION_FUNCTION_API_GET_APP_INFO,
206 AceFunction getAppsContextFunc = ACE_CREATE_FUNCTION(
207 FUNCTION_GET_RUNNING_APPLICATION_CONTEXTS,
208 APPLICATION_FUNCTION_API_GET_APPS_CONTEXT,
209 APPLICATION_FEATURES_APPLICATION_READ,
210 DEVICE_LIST_APPLICATION_READ);
212 applicationMapping.insert(std::make_pair(
213 APPLICATION_FUNCTION_API_GET_APPS_CONTEXT,
214 getAppsContextFunc));
217 AceFunction getAppContextFunc = ACE_CREATE_FUNCTION(
218 FUNCTION_GET_CURRENT_APPLICATION_CONTEXT,
219 APPLICATION_FUNCTION_API_GET_APP_CONTEXT,
220 APPLICATION_FEATURES_APPLICATION_READ,
221 DEVICE_LIST_APPLICATION_READ);
223 applicationMapping.insert(std::make_pair(
224 APPLICATION_FUNCTION_API_GET_APP_CONTEXT,
228 AceFunction findAppControlFunc = ACE_CREATE_FUNCTION(
229 FUNCTION_GET_RUNNING_APPLICATION_CONTEXTS,
230 APPLICATION_FUNCTION_API_FIND_APP_CONTROL,
231 APPLICATION_FEATURES_APPLICATION_READ,
232 DEVICE_LIST_APPLICATION_READ);
234 applicationMapping.insert(std::make_pair(
235 APPLICATION_FUNCTION_API_FIND_APP_CONTROL,
236 findAppControlFunc));
238 // addAppInfoEventListener
239 AceFunction addAppInfoEventListenerFunc = ACE_CREATE_FUNCTION(
240 FUNCTION_ADD_APPLICATION_INFORMATION_EVENT_LISTENER,
241 APPLICATION_FUNCTION_API_ADD_APP_INFO_EVENT_LISTENER,
242 APPLICATION_FEATURES_APPLICATION_READ,
243 DEVICE_LIST_APPLICATION_READ);
245 applicationMapping.insert(std::make_pair(
246 APPLICATION_FUNCTION_API_ADD_APP_INFO_EVENT_LISTENER,
247 addAppInfoEventListenerFunc));
249 // removeAppInfoEventListener
250 AceFunction removeAppInfoEventListenerFunc = ACE_CREATE_FUNCTION(
251 FUNCTION_REMOVE_APPLICATION_INFORMATION_EVENT_LISTENER,
252 APPLICATION_FUNCTION_API_REMOVE_APP_INFO_EVENT_LISTENER,
253 APPLICATION_FEATURES_APPLICATION_READ,
254 DEVICE_LIST_APPLICATION_READ);
256 applicationMapping.insert(std::make_pair(
257 APPLICATION_FUNCTION_API_REMOVE_APP_INFO_EVENT_LISTENER,
258 removeAppInfoEventListenerFunc));
261 AceFunction installFunc = ACE_CREATE_FUNCTION(
262 FUNCTION_INSTALL_APP,
263 APPLICATION_FUNCTION_API_INSTALL_APP,
264 APPLICATION_FEATURES_APPLICATION_INSTALL,
265 DEVICE_LIST_APPLICATION_INSTALL);
266 applicationMapping.insert(std::make_pair(
267 APPLICATION_FUNCTION_API_INSTALL_APP,
271 AceFunction uninstallFunc = ACE_CREATE_FUNCTION(
272 FUNCTION_UNINSTALL_APP,
273 APPLICATION_FUNCTION_API_UNINSTALL_APP,
274 APPLICATION_FEATURES_APPLICATION_INSTALL,
275 DEVICE_LIST_APPLICATION_INSTALL);
276 applicationMapping.insert(std::make_pair(
277 APPLICATION_FUNCTION_API_UNINSTALL_APP,
281 AceFunction updateFunc = ACE_CREATE_FUNCTION(
283 APPLICATION_FUNCTION_API_UPDATE_APP,
284 APPLICATION_FEATURES_APPLICATION_INSTALL,
285 DEVICE_LIST_APPLICATION_INSTALL);
286 applicationMapping.insert(std::make_pair(
287 APPLICATION_FUNCTION_API_UPDATE_APP,
290 return applicationMapping;