2b1dbb991d8deb4a722c9da0e8904594c63e9506
[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     // listInstalledApplications
93     AceFunction listInstalledApplicationsFunc = ACE_CREATE_FUNCTION(
94             FUNCTION_LIST_INSTALLED_APPLICATIONS,
95             APPLICATION_FUNCTION_API_LIST_INSTALLED_APPLICATIONS,
96             APPLICATION_FEATURES_APPLICATION_MANAGER,
97             DEVICE_LIST_APPLICATION_MANAGER);
98
99     applicationMapping.insert(std::make_pair(
100                                APPLICATION_FUNCTION_API_LIST_INSTALLED_APPLICATIONS,
101                                listInstalledApplicationsFunc));
102
103     // listRunningApplications
104     AceFunction listRunningApplicationsFunc = ACE_CREATE_FUNCTION(
105             FUNCTION_LIST_RUNNING_APPLICATIONS,
106             APPLICATION_FUNCTION_API_LIST_RUNNING_APPLICATIONS,
107             APPLICATION_FEATURES_APPLICATION_MANAGER,
108             DEVICE_LIST_APPLICATION_MANAGER);
109
110     applicationMapping.insert(std::make_pair(
111                                APPLICATION_FUNCTION_API_LIST_RUNNING_APPLICATIONS,
112                                listRunningApplicationsFunc));
113
114     // getApplicationInformation
115     AceFunction getApplicationInformationFunc = ACE_CREATE_FUNCTION(
116             FUNCTION_GET_APPLICATION_INFORMATION,
117             APPLICATION_FUNCTION_API_GET_APPLICATION_INFORMATION,
118             APPLICATION_FEATURES_APPLICATION_MANAGER,
119             DEVICE_LIST_APPLICATION_MANAGER);
120
121     applicationMapping.insert(std::make_pair(
122                                APPLICATION_FUNCTION_API_GET_APPLICATION_INFORMATION,
123                                getApplicationInformationFunc));
124
125     // addApplicationListChangeListener
126     AceFunction addApplicationListChangeListenerFunc = ACE_CREATE_FUNCTION(
127             FUNCTION_ADD_APPLICATION_LIST_CHANGE_LISTENER,
128             APPLICATION_FUNCTION_API_ADD_APPLICATION_LIST_CHANGE_LISTENER,
129             APPLICATION_FEATURES_APPLICATION_MANAGER,
130             DEVICE_LIST_APPLICATION_MANAGER);
131
132     applicationMapping.insert(std::make_pair(
133                                APPLICATION_FUNCTION_API_ADD_APPLICATION_LIST_CHANGE_LISTENER,
134                                addApplicationListChangeListenerFunc));
135
136     // unsetApplicaitonListChangeListener
137     AceFunction unsetApplicaitonListChangeListenerFunc = ACE_CREATE_FUNCTION(
138             FUNCTION_REMOVE_APPLICATOIN_LIST_CHANGE_LISTENER,
139             APPLICATION_FUNCTION_API_REMOVE_APPLICATION_LIST_CHANGE_LISTENER,
140             APPLICATION_FEATURES_APPLICATION_MANAGER,
141             DEVICE_LIST_APPLICATION_MANAGER);
142
143     applicationMapping.insert(std::make_pair(
144                                APPLICATION_FUNCTION_API_REMOVE_APPLICATION_LIST_CHANGE_LISTENER,
145                                unsetApplicaitonListChangeListenerFunc));
146
147     // launchService
148     AceFunction launchServiceFunc = ACE_CREATE_FUNCTION(
149             FUNCTION_LAUNCH_SERVICE,
150             APPLICATION_FUNCTION_API_LAUNCH_SERVICE,
151             APPLICATION_FEATURES_APPLICATION_SERVICE,
152             DEVICE_LIST_APPLICATION_SERVICE);
153
154     applicationMapping.insert(std::make_pair(
155                                APPLICATION_FUNCTION_API_LAUNCH_SERVICE,
156                                launchServiceFunc));
157
158
159     return applicationMapping;
160 }
161
162 }
163 }
164 }