Beta merge 2
[profile/ivi/wrt-plugins-tizen.git] / src / standards / Tizen / Application / plugin_config.cpp
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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. 
15  */
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 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"
30
31 #define APPLICATION_DEVICE_CAP_MANAGER "application.manager"
32 #define APPLICATION_DEVICE_CAP_SERVICE "application.service"
33
34 using namespace WrtDeviceApis::Commons;
35
36 namespace TizenApis {
37 namespace Tizen1_0 {
38 namespace Application {
39
40 static FunctionMapping createApplicationFunctions();
41
42 static FunctionMapping ApplicationFunctions =
43     createApplicationFunctions();
44
45 DEFINE_FUNCTION_GETTER(Application, ApplicationFunctions);
46
47 static FunctionMapping createApplicationFunctions()
48 {
49     /**
50      * Device capabilities
51      */ 
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);
54
55     ACE_CREATE_DEVICE_CAPS_LIST(EMPTY_DEVICE_LIST);
56
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);        
61
62     /**
63      * Api Features
64      */
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);   
68
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);
72
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);
76
77     ACE_CREATE_FEATURE_LIST(APPLICATION_FEATURES);
78     ACE_ADD_API_FEATURE(APPLICATION_FEATURES, FEATURE_APPLICATION);
79
80     ACE_CREATE_FEATURE_LIST(APPLICATION_FEATURES_MANAGER);
81     ACE_ADD_API_FEATURE(APPLICATION_FEATURES_APPLICATION_MANAGER, FEATURE_APPLICATION_MANAGER);
82
83     ACE_CREATE_FEATURE_LIST(APPLICATION_FEATURES_SERVICE);
84     ACE_ADD_API_FEATURE(APPLICATION_FEATURES_APPLICATION_SERVICE, FEATURE_APPLICATION_SERVICE);
85         
86
87     /**
88      * Functions
89      */
90     FunctionMapping applicationMapping;
91
92     // launch
93     AceFunction launchFunc = ACE_CREATE_FUNCTION(
94             FUNCTION_LAUNCH,
95             APPLICATION_FUNCTION_API_LAUNCH,
96             APPLICATION_FEATURES_APPLICATION_MANAGER,
97             DEVICE_LIST_APPLICATION_MANAGER);
98
99     applicationMapping.insert(std::make_pair(
100                                APPLICATION_FUNCTION_API_LAUNCH,
101                                launchFunc));
102
103         // kill
104     AceFunction killFunc = ACE_CREATE_FUNCTION(
105             FUNCTION_KILL,
106             APPLICATION_FUNCTION_API_KILL,
107             APPLICATION_FEATURES_APPLICATION_MANAGER,
108             DEVICE_LIST_APPLICATION_MANAGER);
109
110     applicationMapping.insert(std::make_pair(
111                                APPLICATION_FUNCTION_API_KILL,
112                                killFunc));
113
114         // exit
115     AceFunction exitFunc = ACE_CREATE_FUNCTION(
116             FUNCTION_EXIT,
117             APPLICATION_FUNCTION_API_EXIT,
118             APPLICATION_FEATURES_APPLICATION_MANAGER,
119             DEVICE_LIST_APPLICATION_MANAGER);
120
121     applicationMapping.insert(std::make_pair(
122                                APPLICATION_FUNCTION_API_EXIT,
123                                exitFunc));
124
125     // hide
126     AceFunction hideFunc = ACE_CREATE_FUNCTION(
127             FUNCTION_HIDE,
128             APPLICATION_FUNCTION_API_HIDE,
129             APPLICATION_FEATURES_APPLICATION_MANAGER,
130             DEVICE_LIST_APPLICATION_MANAGER);
131
132     applicationMapping.insert(std::make_pair(
133                                APPLICATION_FUNCTION_API_HIDE,
134                                hideFunc));
135
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);
142
143     applicationMapping.insert(std::make_pair(
144                                APPLICATION_FUNCTION_API_GET_APPLICATION_INFORMATIONS,
145                                getApplicationInformationsFunc));
146
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);
153
154     applicationMapping.insert(std::make_pair(
155                                APPLICATION_FUNCTION_API_GET_APPLICATION_INFORMATION,
156                                getApplicationInformationFunc));
157
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);
164
165     applicationMapping.insert(std::make_pair(
166                                APPLICATION_FUNCTION_API_GET_RUNNING_APPLICATION_CONTEXTS,
167                                getRunningApplicationContextsFunc));
168
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);
175
176     applicationMapping.insert(std::make_pair(
177                                APPLICATION_FUNCTION_API_GET_CURRENT_APPLICATION_CONTEXT,
178                                getCurrentApplicationContextFunc));
179
180
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);
187
188     applicationMapping.insert(std::make_pair(
189                                APPLICATION_FUNCTION_API_ADD_APPLICATION_INFORMATION_EVENT_LISTENER,
190                                addApplicationInformationEventListenerFunc));
191
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);
198
199     applicationMapping.insert(std::make_pair(
200                                APPLICATION_FUNCTION_API_REMOVE_APPLICATION_INFORMATION_EVENT_LISTENER,
201                                removeApplicationInformationEventListenerFunc));
202
203     // launchService
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);
209
210     applicationMapping.insert(std::make_pair(
211                                APPLICATION_FUNCTION_API_LAUNCH_SERVICE,
212                                launchServiceFunc));
213
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);
220
221     applicationMapping.insert(std::make_pair(
222                                APPLICATION_FUNCTION_API_GET_APPLICATION_SERVICE,
223                                getApplicationServiceFunc));
224
225     return applicationMapping;
226 }
227
228 }
229 }
230 }