2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include <Commons/FunctionDefinition.h>
19 #include <Commons/FunctionDeclaration.h>
21 #include <Commons/Exception.h>
22 #include <dpl/exception.h>
25 #include "plugin_config.h"
27 #define APPLICATION_FEATURE_API "http://tizen.org/api/application"
28 #define APPLICATION_FEATURE_API_MANAGER "http://tizen.org/api/application.manager"
29 #define APPLICATION_FEATURE_API_SERVICE "http://tizen.org/api/application.service"
31 #define APPLICATION_DEVICE_CAP_MANAGER "application.manager"
32 #define APPLICATION_DEVICE_CAP_SERVICE "application.service"
34 using namespace WrtDeviceApis::Commons;
38 namespace Application {
40 static FunctionMapping createApplicationFunctions();
42 static FunctionMapping ApplicationFunctions =
43 createApplicationFunctions();
45 DEFINE_FUNCTION_GETTER(Application, ApplicationFunctions);
47 static FunctionMapping createApplicationFunctions()
52 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_APPLICATION_MANAGER, APPLICATION_DEVICE_CAP_MANAGER);
53 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_APPLICATION_SERVICE, APPLICATION_DEVICE_CAP_SERVICE);
55 ACE_CREATE_DEVICE_CAPS_LIST(EMPTY_DEVICE_LIST);
57 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_APPLICATION_MANAGER);
58 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_APPLICATION_SERVICE);
59 ACE_ADD_DEVICE_CAP(DEVICE_LIST_APPLICATION_MANAGER, DEVICE_CAP_APPLICATION_MANAGER);
60 ACE_ADD_DEVICE_CAP(DEVICE_LIST_APPLICATION_SERVICE, DEVICE_CAP_APPLICATION_SERVICE);
65 ACE_CREATE_FEATURE(FEATURE_APPLICATION, APPLICATION_FEATURE_API);
66 ACE_CREATE_FEATURE(FEATURE_APPLICATION_MANAGER, APPLICATION_FEATURE_API_MANAGER);
67 ACE_CREATE_FEATURE(FEATURE_APPLICATION_SERVICE, APPLICATION_FEATURE_API_SERVICE);
69 ACE_CREATE_FEATURE_LIST(APPLICATION_FEATURES_APPLICATION_MANAGER);
70 ACE_ADD_API_FEATURE(APPLICATION_FEATURES_APPLICATION_MANAGER, FEATURE_APPLICATION);
71 ACE_ADD_API_FEATURE(APPLICATION_FEATURES_APPLICATION_MANAGER, FEATURE_APPLICATION_MANAGER);
73 ACE_CREATE_FEATURE_LIST(APPLICATION_FEATURES_APPLICATION_SERVICE);
74 ACE_ADD_API_FEATURE(APPLICATION_FEATURES_APPLICATION_SERVICE, FEATURE_APPLICATION);
75 ACE_ADD_API_FEATURE(APPLICATION_FEATURES_APPLICATION_SERVICE, FEATURE_APPLICATION_SERVICE);
77 ACE_CREATE_FEATURE_LIST(APPLICATION_FEATURES);
78 ACE_ADD_API_FEATURE(APPLICATION_FEATURES, FEATURE_APPLICATION);
80 ACE_CREATE_FEATURE_LIST(APPLICATION_FEATURES_MANAGER);
81 ACE_ADD_API_FEATURE(APPLICATION_FEATURES_APPLICATION_MANAGER, FEATURE_APPLICATION_MANAGER);
83 ACE_CREATE_FEATURE_LIST(APPLICATION_FEATURES_SERVICE);
84 ACE_ADD_API_FEATURE(APPLICATION_FEATURES_APPLICATION_SERVICE, FEATURE_APPLICATION_SERVICE);
90 FunctionMapping applicationMapping;
93 AceFunction launchFunc = ACE_CREATE_FUNCTION(
95 APPLICATION_FUNCTION_API_LAUNCH,
96 APPLICATION_FEATURES_APPLICATION_MANAGER,
97 DEVICE_LIST_APPLICATION_MANAGER);
99 applicationMapping.insert(std::make_pair(
100 APPLICATION_FUNCTION_API_LAUNCH,
104 AceFunction killFunc = ACE_CREATE_FUNCTION(
106 APPLICATION_FUNCTION_API_KILL,
107 APPLICATION_FEATURES_APPLICATION_MANAGER,
108 DEVICE_LIST_APPLICATION_MANAGER);
110 applicationMapping.insert(std::make_pair(
111 APPLICATION_FUNCTION_API_KILL,
115 AceFunction exitFunc = ACE_CREATE_FUNCTION(
117 APPLICATION_FUNCTION_API_EXIT,
118 APPLICATION_FEATURES_APPLICATION_MANAGER,
119 DEVICE_LIST_APPLICATION_MANAGER);
121 applicationMapping.insert(std::make_pair(
122 APPLICATION_FUNCTION_API_EXIT,
126 AceFunction hideFunc = ACE_CREATE_FUNCTION(
128 APPLICATION_FUNCTION_API_HIDE,
129 APPLICATION_FEATURES_APPLICATION_MANAGER,
130 DEVICE_LIST_APPLICATION_MANAGER);
132 applicationMapping.insert(std::make_pair(
133 APPLICATION_FUNCTION_API_HIDE,
136 // getApplicationInformations
137 AceFunction getApplicationInformationsFunc = ACE_CREATE_FUNCTION(
138 FUNCTION_GET_APPLICATION_INFORMATIONS,
139 APPLICATION_FUNCTION_API_GET_APPLICATION_INFORMATIONS,
140 APPLICATION_FEATURES_APPLICATION_MANAGER,
141 DEVICE_LIST_APPLICATION_MANAGER);
143 applicationMapping.insert(std::make_pair(
144 APPLICATION_FUNCTION_API_GET_APPLICATION_INFORMATIONS,
145 getApplicationInformationsFunc));
147 // getApplicationInformation
148 AceFunction getApplicationInformationFunc = ACE_CREATE_FUNCTION(
149 FUNCTION_GET_APPLICATION_INFORMATION,
150 APPLICATION_FUNCTION_API_GET_APPLICATION_INFORMATION,
151 APPLICATION_FEATURES_APPLICATION_MANAGER,
152 DEVICE_LIST_APPLICATION_MANAGER);
154 applicationMapping.insert(std::make_pair(
155 APPLICATION_FUNCTION_API_GET_APPLICATION_INFORMATION,
156 getApplicationInformationFunc));
158 // getRunningApplicationContexts
159 AceFunction getRunningApplicationContextsFunc = ACE_CREATE_FUNCTION(
160 FUNCTION_GET_RUNNING_APPLICATION_CONTEXTS,
161 APPLICATION_FUNCTION_API_GET_RUNNING_APPLICATION_CONTEXTS,
162 APPLICATION_FEATURES_APPLICATION_MANAGER,
163 DEVICE_LIST_APPLICATION_MANAGER);
165 applicationMapping.insert(std::make_pair(
166 APPLICATION_FUNCTION_API_GET_RUNNING_APPLICATION_CONTEXTS,
167 getRunningApplicationContextsFunc));
169 // getCurrentApplicationContext
170 AceFunction getCurrentApplicationContextFunc = ACE_CREATE_FUNCTION(
171 FUNCTION_GET_CURRENT_APPLICATION_CONTEXT,
172 APPLICATION_FUNCTION_API_GET_CURRENT_APPLICATION_CONTEXT,
173 APPLICATION_FEATURES_APPLICATION_MANAGER,
174 DEVICE_LIST_APPLICATION_MANAGER);
176 applicationMapping.insert(std::make_pair(
177 APPLICATION_FUNCTION_API_GET_CURRENT_APPLICATION_CONTEXT,
178 getCurrentApplicationContextFunc));
181 // addApplicationInformationEventListener
182 AceFunction addApplicationInformationEventListenerFunc = ACE_CREATE_FUNCTION(
183 FUNCTION_ADD_APPLICATION_INFORMATION_EVENT_LISTENER,
184 APPLICATION_FUNCTION_API_ADD_APPLICATION_INFORMATION_EVENT_LISTENER,
185 APPLICATION_FEATURES_APPLICATION_MANAGER,
186 DEVICE_LIST_APPLICATION_MANAGER);
188 applicationMapping.insert(std::make_pair(
189 APPLICATION_FUNCTION_API_ADD_APPLICATION_INFORMATION_EVENT_LISTENER,
190 addApplicationInformationEventListenerFunc));
192 // removeApplicationInformationEventListener
193 AceFunction removeApplicationInformationEventListenerFunc = ACE_CREATE_FUNCTION(
194 FUNCTION_REMOVE_APPLICATION_INFORMATION_EVENT_LISTENER,
195 APPLICATION_FUNCTION_API_REMOVE_APPLICATION_INFORMATION_EVENT_LISTENER,
196 APPLICATION_FEATURES_APPLICATION_MANAGER,
197 DEVICE_LIST_APPLICATION_MANAGER);
199 applicationMapping.insert(std::make_pair(
200 APPLICATION_FUNCTION_API_REMOVE_APPLICATION_INFORMATION_EVENT_LISTENER,
201 removeApplicationInformationEventListenerFunc));
204 AceFunction launchServiceFunc = ACE_CREATE_FUNCTION(
205 FUNCTION_LAUNCH_SERVICE,
206 APPLICATION_FUNCTION_API_LAUNCH_SERVICE,
207 APPLICATION_FEATURES_APPLICATION_SERVICE,
208 DEVICE_LIST_APPLICATION_SERVICE);
210 applicationMapping.insert(std::make_pair(
211 APPLICATION_FUNCTION_API_LAUNCH_SERVICE,
214 // getApplicationService
215 AceFunction getApplicationServiceFunc = ACE_CREATE_FUNCTION(
216 FUNCTION_GET_APPLICATION_SERVICE,
217 APPLICATION_FUNCTION_API_GET_APPLICATION_SERVICE,
218 APPLICATION_FEATURES_APPLICATION_SERVICE,
219 DEVICE_LIST_APPLICATION_SERVICE);
221 applicationMapping.insert(std::make_pair(
222 APPLICATION_FUNCTION_API_GET_APPLICATION_SERVICE,
223 getApplicationServiceFunc));
225 return applicationMapping;