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.
21 #include <Commons/FunctionDefinition.h>
22 #include <Commons/FunctionDeclaration.h>
23 #include <Commons/Exception.h>
24 #include "plugin_config.h"
26 #define MESSAGING_FEATURE_API_READ "http://tizen.org/privilege/messaging.read"
27 #define MESSAGING_FEATURE_API_SEND "http://tizen.org/privilege/messaging.send" // before sendMessage move to write privilege start
28 #define MESSAGING_FEATURE_API_WRITE "http://tizen.org/privilege/messaging.write"
30 #define MESSAGING_DEVICE_CAP_READ "messaging.read"
31 #define MESSAGING_DEVICE_CAP_SEND "messaging.send" // before sendMessage move to write privilege start
32 #define MESSAGING_DEVICE_CAP_WRITE "messaging.write"
37 using namespace WrtDeviceApis::Commons;
39 static WrtDeviceApis::Commons::FunctionMapping createMessagingFunctions();
40 static WrtDeviceApis::Commons::FunctionMapping MessagingFunctions = createMessagingFunctions();
42 DEFINE_FUNCTION_GETTER(Messaging, MessagingFunctions);
44 static WrtDeviceApis::Commons::FunctionMapping createMessagingFunctions()
50 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_MESSAGING_READ, MESSAGING_DEVICE_CAP_READ);
51 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_MESSAGING_SEND, MESSAGING_DEVICE_CAP_SEND);
52 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_MESSAGING_WRITE, MESSAGING_DEVICE_CAP_WRITE);
54 ACE_CREATE_DEVICE_CAPS_LIST(EMPTY_DEVICE_LIST);
56 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_MESSAGING_READ);
57 ACE_ADD_DEVICE_CAP(DEVICE_LIST_MESSAGING_READ, DEVICE_CAP_MESSAGING_READ);
59 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_MESSAGING_SEND);
60 ACE_ADD_DEVICE_CAP(DEVICE_LIST_MESSAGING_SEND, DEVICE_CAP_MESSAGING_SEND);
62 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_MESSAGING_WRITE);
63 ACE_ADD_DEVICE_CAP(DEVICE_LIST_MESSAGING_WRITE, DEVICE_CAP_MESSAGING_WRITE);
68 ACE_CREATE_FEATURE(FEATURE_MESSAGING_READ, MESSAGING_FEATURE_API_READ);
69 ACE_CREATE_FEATURE(FEATURE_MESSAGING_SEND, MESSAGING_FEATURE_API_SEND);
70 ACE_CREATE_FEATURE(FEATURE_MESSAGING_WRITE, MESSAGING_FEATURE_API_WRITE);
72 ACE_CREATE_FEATURE_LIST(MESSAGING_FEATURES_MESSAGING_READ_SEND_WRITE);
74 ACE_ADD_API_FEATURE(MESSAGING_FEATURES_MESSAGING_READ_SEND_WRITE, FEATURE_MESSAGING_READ);
75 ACE_ADD_API_FEATURE(MESSAGING_FEATURES_MESSAGING_READ_SEND_WRITE, FEATURE_MESSAGING_SEND);
76 ACE_ADD_API_FEATURE(MESSAGING_FEATURES_MESSAGING_READ_SEND_WRITE, FEATURE_MESSAGING_WRITE);
78 ACE_CREATE_FEATURE_LIST(MESSAGING_FEATURES_MESSAGING_READ);
79 ACE_ADD_API_FEATURE(MESSAGING_FEATURES_MESSAGING_READ, FEATURE_MESSAGING_READ);
81 ACE_CREATE_FEATURE_LIST(MESSAGING_FEATURES_MESSAGING_SEND);
82 ACE_ADD_API_FEATURE(MESSAGING_FEATURES_MESSAGING_SEND, FEATURE_MESSAGING_SEND);
84 ACE_CREATE_FEATURE_LIST(MESSAGING_FEATURES_MESSAGING_WRITE);
85 ACE_ADD_API_FEATURE(MESSAGING_FEATURES_MESSAGING_WRITE, FEATURE_MESSAGING_WRITE);
87 // before sendMessage move to write privilege start
88 ACE_CREATE_FEATURE_LIST(MESSAGING_FEATURES_MESSAGING_SEND_WRITE);
90 ACE_ADD_API_FEATURE(MESSAGING_FEATURES_MESSAGING_SEND_WRITE, FEATURE_MESSAGING_SEND);
91 ACE_ADD_API_FEATURE(MESSAGING_FEATURES_MESSAGING_SEND_WRITE, FEATURE_MESSAGING_WRITE);
92 // before sendMessage move to write privilege end
94 ACE_CREATE_FEATURE_LIST(MESSAGING_FEATURES_MESSAGING);
95 ACE_ADD_API_FEATURE(MESSAGING_FEATURES_MESSAGING, FEATURE_MESSAGING);
97 ACE_CREATE_FEATURE_LIST(MESSAGING_FEATURES_READ);
98 ACE_ADD_API_FEATURE(MESSAGING_FEATURES_READ, FEATURE_MESSAGING_READ);
100 ACE_CREATE_FEATURE_LIST(MESSAGING_FEATURES_SEND);
101 ACE_ADD_API_FEATURE(MESSAGING_FEATURES_SEND, FEATURE_MESSAGING_SEND);
103 ACE_CREATE_FEATURE_LIST(MESSAGING_FEATURES_WRITE);
104 ACE_ADD_API_FEATURE(MESSAGING_FEATURES_WRITE, FEATURE_MESSAGING_WRITE);
110 FunctionMapping MessagingFunctions;
112 //get Message Service
113 AceFunction getMessagingServiceFunc = ACE_CREATE_FUNCTION(
114 FUNCTION_GET_MGR_SERVICE,
115 MESSAGING_FUNCTION_API_GET_MESSAGING_SERVICE,
116 MESSAGING_FEATURES_MESSAGING_READ_SEND_WRITE,
119 MessagingFunctions.insert(std::make_pair(
120 MESSAGING_FUNCTION_API_GET_MESSAGING_SERVICE,
121 getMessagingServiceFunc));
126 AceFunction cancelOpFolderFunc = ACE_CREATE_FUNCTION(
127 FUNCTION_GET_MGR_SERVICE,
128 MESSAGING_FUNCTION_API_CANCEL_OPERATION,
129 MESSAGING_FEATURES_MESSAGING_READ,
132 MessagingFunctions.insert( std::make_pair(
133 MESSAGING_FUNCTION_API_CANCEL_OPERATION,
134 cancelOpFolderFunc));
136 AceFunction findMessagesFunc = ACE_CREATE_FUNCTION(
137 FUNCTION_GET_MGR_SERVICE,
138 MESSAGING_FUNCTION_API_FIND_MESSAGES,
139 MESSAGING_FEATURES_MESSAGING_READ,
142 MessagingFunctions.insert( std::make_pair(
143 MESSAGING_FUNCTION_API_FIND_MESSAGES,
146 AceFunction findConversationsFunc = ACE_CREATE_FUNCTION(
147 FUNCTION_GET_MGR_SERVICE,
148 MESSAGING_FUNCTION_API_FIND_CONVERSATIONS,
149 MESSAGING_FEATURES_MESSAGING_READ,
152 MessagingFunctions.insert( std::make_pair(
153 MESSAGING_FUNCTION_API_FIND_CONVERSATIONS,
154 findConversationsFunc));
156 AceFunction findFoldersFunc = ACE_CREATE_FUNCTION(
157 FUNCTION_GET_MGR_SERVICE,
158 MESSAGING_FUNCTION_API_FIND_FOLDERS,
159 MESSAGING_FEATURES_MESSAGING_READ,
162 MessagingFunctions.insert( std::make_pair(
163 MESSAGING_FUNCTION_API_FIND_FOLDERS,
166 AceFunction addMessagesChangeListenerFunc = ACE_CREATE_FUNCTION(
167 FUNCTION_GET_MGR_SERVICE,
168 MESSAGING_FUNCTION_API_ADD_MESSAGES_CHANGE_LISTNER,
169 MESSAGING_FEATURES_MESSAGING_READ,
172 MessagingFunctions.insert( std::make_pair(
173 MESSAGING_FUNCTION_API_ADD_MESSAGES_CHANGE_LISTNER,
174 addMessagesChangeListenerFunc));
176 AceFunction addConversationsChangeListenerFunc = ACE_CREATE_FUNCTION(
177 FUNCTION_GET_MGR_SERVICE,
178 MESSAGING_FUNCTION_API_ADD_CONVERSATIONS_CHANGE_LISTNER,
179 MESSAGING_FEATURES_MESSAGING_READ,
182 MessagingFunctions.insert( std::make_pair(
183 MESSAGING_FUNCTION_API_ADD_CONVERSATIONS_CHANGE_LISTNER,
184 addConversationsChangeListenerFunc));
186 AceFunction addFoldersChangeListenerFunc = ACE_CREATE_FUNCTION(
187 FUNCTION_GET_MGR_SERVICE,
188 MESSAGING_FUNCTION_API_ADD_FOLDERS_CHANGE_LISTNER,
189 MESSAGING_FEATURES_MESSAGING_READ,
192 MessagingFunctions.insert( std::make_pair(
193 MESSAGING_FUNCTION_API_ADD_FOLDERS_CHANGE_LISTNER,
194 addFoldersChangeListenerFunc));
196 AceFunction removeChangeListenerFunc = ACE_CREATE_FUNCTION(
197 FUNCTION_GET_MGR_SERVICE,
198 MESSAGING_FUNCTION_API_REMOVE_CHANGE_LISTENER,
199 MESSAGING_FEATURES_MESSAGING_READ,
202 MessagingFunctions.insert( std::make_pair(
203 MESSAGING_FUNCTION_API_REMOVE_CHANGE_LISTENER,
204 removeChangeListenerFunc));
209 AceFunction createMessageFunc = ACE_CREATE_FUNCTION(
210 FUNCTION_GET_MGR_SERVICE,
211 MESSAGING_FUNCTION_API_CREATE_MESSAGE,
212 MESSAGING_FEATURES_MESSAGING_SEND,
215 MessagingFunctions.insert( std::make_pair(
216 MESSAGING_FUNCTION_API_CREATE_MESSAGE,
219 // before sendMessage move to write privilege start
220 AceFunction sendMessageFunc = ACE_CREATE_FUNCTION(
221 FUNCTION_GET_MGR_SERVICE,
222 MESSAGING_FUNCTION_API_SEND_MESSAGE,
223 MESSAGING_FEATURES_MESSAGING_SEND_WRITE,
226 MessagingFunctions.insert( std::make_pair(
227 MESSAGING_FUNCTION_API_SEND_MESSAGE,
229 // before sendMessage move to write privilege end
231 AceFunction loadMessageBodyFunc = ACE_CREATE_FUNCTION(
232 FUNCTION_GET_MGR_SERVICE,
233 MESSAGING_FUNCTION_API_LOAD_MESSAGE_BODY,
234 MESSAGING_FEATURES_MESSAGING_WRITE,
237 MessagingFunctions.insert( std::make_pair(
238 MESSAGING_FUNCTION_API_LOAD_MESSAGE_BODY,
239 loadMessageBodyFunc));
241 AceFunction loadMessageAttachmentFunc = ACE_CREATE_FUNCTION(
242 FUNCTION_GET_MGR_SERVICE,
243 MESSAGING_FUNCTION_API_LOAD_MESSAGE_ATTACHMENT,
244 MESSAGING_FEATURES_MESSAGING_WRITE,
247 MessagingFunctions.insert( std::make_pair(
248 MESSAGING_FUNCTION_API_LOAD_MESSAGE_ATTACHMENT,
249 loadMessageAttachmentFunc));
251 AceFunction syncFunc = ACE_CREATE_FUNCTION(
252 FUNCTION_GET_MGR_SERVICE,
253 MESSAGING_FUNCTION_API_SYNC,
254 MESSAGING_FEATURES_MESSAGING_WRITE,
257 MessagingFunctions.insert( std::make_pair(
258 MESSAGING_FUNCTION_API_SYNC,
261 AceFunction syncFolderFunc = ACE_CREATE_FUNCTION(
262 FUNCTION_GET_MGR_SERVICE,
263 MESSAGING_FUNCTION_API_SYNC_FOLDER,
264 MESSAGING_FEATURES_MESSAGING_WRITE,
267 MessagingFunctions.insert( std::make_pair(
268 MESSAGING_FUNCTION_API_SYNC_FOLDER,
271 AceFunction addDraftMessageFunc = ACE_CREATE_FUNCTION(
272 FUNCTION_GET_MGR_SERVICE,
273 MESSAGING_FUNCTION_API_ADD_DRAFT_MESSAGE,
274 MESSAGING_FEATURES_MESSAGING_WRITE,
277 MessagingFunctions.insert( std::make_pair(
278 MESSAGING_FUNCTION_API_ADD_DRAFT_MESSAGE,
279 addDraftMessageFunc));
281 AceFunction removeMessagesFunc = ACE_CREATE_FUNCTION(
282 FUNCTION_GET_MGR_SERVICE,
283 MESSAGING_FUNCTION_API_REMOVE_MESSAGES,
284 MESSAGING_FEATURES_MESSAGING_WRITE,
287 MessagingFunctions.insert( std::make_pair(
288 MESSAGING_FUNCTION_API_REMOVE_MESSAGES,
289 removeMessagesFunc));
291 AceFunction removeConversationsFunc = ACE_CREATE_FUNCTION(
292 FUNCTION_GET_MGR_SERVICE,
293 MESSAGING_FUNCTION_API_REMOVE_CONVERSATIONS,
294 MESSAGING_FEATURES_MESSAGING_WRITE,
297 MessagingFunctions.insert( std::make_pair(
298 MESSAGING_FUNCTION_API_REMOVE_CONVERSATIONS,
299 removeConversationsFunc));
301 AceFunction updateMessagesFunc = ACE_CREATE_FUNCTION(
302 FUNCTION_GET_MGR_SERVICE,
303 MESSAGING_FUNCTION_API_UPDATE_MESSAGES,
304 MESSAGING_FEATURES_MESSAGING_WRITE,
307 MessagingFunctions.insert( std::make_pair(
308 MESSAGING_FUNCTION_API_UPDATE_MESSAGES,
309 updateMessagesFunc));
311 // before sendMessage move to write privilege start
313 AceFunction sendMessageFunc = ACE_CREATE_FUNCTION(
314 FUNCTION_GET_MGR_SERVICE,
315 MESSAGING_FUNCTION_API_SEND_MESSAGE,
316 MESSAGING_FEATURES_MESSAGING_WRITE,
319 MessagingFunctions.insert( std::make_pair(
320 MESSAGING_FUNCTION_API_SEND_MESSAGE,
323 // before sendMessage move to write privilege end
324 return MessagingFunctions;
331 #undef MESSAGING_FEATURE_API
332 #undef MESSAGING_FEATURE_API_READ
333 #undef MESSAGING_FEATURE_API_SEND // before sendMessage move to write privilege start
334 #undef MESSAGING_FEATURE_API_WRITE
335 #undef MESSAGING_DEVICE_CAP_READ
336 #undef MESSAGING_DEVICE_CAP_SEND // before sendMessage move to write privilege start
337 #undef MESSAGING_DEVICE_CAP_WRITE