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;
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);
99 applicationMapping.insert(std::make_pair(
100 APPLICATION_FUNCTION_API_LIST_INSTALLED_APPLICATIONS,
101 listInstalledApplicationsFunc));
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);
110 applicationMapping.insert(std::make_pair(
111 APPLICATION_FUNCTION_API_LIST_RUNNING_APPLICATIONS,
112 listRunningApplicationsFunc));
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);
121 applicationMapping.insert(std::make_pair(
122 APPLICATION_FUNCTION_API_GET_APPLICATION_INFORMATION,
123 getApplicationInformationFunc));
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);
132 applicationMapping.insert(std::make_pair(
133 APPLICATION_FUNCTION_API_ADD_APPLICATION_LIST_CHANGE_LISTENER,
134 addApplicationListChangeListenerFunc));
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);
143 applicationMapping.insert(std::make_pair(
144 APPLICATION_FUNCTION_API_REMOVE_APPLICATION_LIST_CHANGE_LISTENER,
145 unsetApplicaitonListChangeListenerFunc));
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);
154 applicationMapping.insert(std::make_pair(
155 APPLICATION_FUNCTION_API_LAUNCH_SERVICE,
159 return applicationMapping;