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 CONTACT_FEATURE_API "http://tizen.org/api/contact"
28 #define CONTACT_FEATURE_API_READ "http://tizen.org/api/contact.read"
29 #define CONTACT_FEATURE_API_WRITE "http://tizen.org/api/contact.write"
31 #define CONTACT_DEVICE_CAP_READ "contact.read"
32 #define CONTACT_DEVICE_CAP_WRITE "contact.write"
34 using namespace WrtDeviceApis::Commons;
40 static FunctionMapping createContactFunctions();
42 static FunctionMapping ContactFunctions =
43 createContactFunctions();
45 DEFINE_FUNCTION_GETTER(Contact, ContactFunctions);
47 static FunctionMapping createContactFunctions()
52 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_CONTACT_READ, CONTACT_DEVICE_CAP_READ);
53 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_CONTACT_WRITE, CONTACT_DEVICE_CAP_WRITE);
55 ACE_CREATE_DEVICE_CAPS_LIST(EMPTY_DEVICE_LIST);
57 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_CONTACT_READ);
58 ACE_ADD_DEVICE_CAP(DEVICE_LIST_CONTACT_READ, DEVICE_CAP_CONTACT_READ);
60 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_CONTACT_WRITE);
61 ACE_ADD_DEVICE_CAP(DEVICE_LIST_CONTACT_WRITE, DEVICE_CAP_CONTACT_WRITE);
66 ACE_CREATE_FEATURE(FEATURE_CONTACT, CONTACT_FEATURE_API);
67 ACE_CREATE_FEATURE(FEATURE_CONTACT_READ, CONTACT_FEATURE_API_READ);
68 ACE_CREATE_FEATURE(FEATURE_CONTACT_WRITE, CONTACT_FEATURE_API_WRITE);
70 ACE_CREATE_FEATURE_LIST(CONTACT_FEATURES_CONTACT_READ_WRITE);
71 ACE_ADD_API_FEATURE(CONTACT_FEATURES_CONTACT_READ_WRITE,
73 ACE_ADD_API_FEATURE(CONTACT_FEATURES_CONTACT_READ_WRITE,
74 FEATURE_CONTACT_READ);
75 ACE_ADD_API_FEATURE(CONTACT_FEATURES_CONTACT_READ_WRITE,
76 FEATURE_CONTACT_WRITE);
78 ACE_CREATE_FEATURE_LIST(CONTACT_FEATURES_CONTACT_READ);
79 ACE_ADD_API_FEATURE(CONTACT_FEATURES_CONTACT_READ, FEATURE_CONTACT);
80 ACE_ADD_API_FEATURE(CONTACT_FEATURES_CONTACT_READ, FEATURE_CONTACT_READ);
82 ACE_CREATE_FEATURE_LIST(CONTACT_FEATURES_CONTACT_WRITE);
83 ACE_ADD_API_FEATURE(CONTACT_FEATURES_CONTACT_WRITE, FEATURE_CONTACT);
84 ACE_ADD_API_FEATURE(CONTACT_FEATURES_CONTACT_WRITE,
85 FEATURE_CONTACT_WRITE);
87 ACE_CREATE_FEATURE_LIST(CONTACT_FEATURES_CONTACT);
88 ACE_ADD_API_FEATURE(CONTACT_FEATURES_CONTACT,
91 ACE_CREATE_FEATURE_LIST(CONTACT_FEATURES_READ);
92 ACE_ADD_API_FEATURE(CONTACT_FEATURES_CONTACT_READ,
93 FEATURE_CONTACT_READ);
95 ACE_CREATE_FEATURE_LIST(CONTACT_FEATURES_WRITE);
96 ACE_ADD_API_FEATURE(CONTACT_FEATURES_WRITE,
97 FEATURE_CONTACT_WRITE);
103 FunctionMapping contactMapping;
106 AceFunction getAddressBooksFunc = ACE_CREATE_FUNCTION(
107 FUNCTION_GET_CONTACTS,
108 CONTACT_FUNCTION_API_GET_ADDRESS_BOOKS,
109 CONTACT_FEATURES_CONTACT_READ_WRITE,
110 DEVICE_LIST_CONTACT_READ);
112 contactMapping.insert(std::make_pair(
113 CONTACT_FUNCTION_API_GET_ADDRESS_BOOKS,
114 getAddressBooksFunc));
116 //getDefaultAddressBook
117 AceFunction getDefaultAddressBookFunc = ACE_CREATE_FUNCTION(
118 FUNCTION_GET_DEFAULT_CONTACT,
119 CONTACT_FUNCTION_API_GET_DEFAULT_ADDRESS_BOOK,
120 CONTACT_FEATURES_CONTACT_READ_WRITE,
121 DEVICE_LIST_CONTACT_READ);
123 contactMapping.insert(std::make_pair(
124 CONTACT_FUNCTION_API_GET_DEFAULT_ADDRESS_BOOK,
125 getDefaultAddressBookFunc));
129 AceFunction convertFromStringFunc = ACE_CREATE_FUNCTION(
130 FUNCTION_CREATE_EVENT_FROM_STRING,
131 CONTACT_FUNCTION_API_CONVERT_FROM_STRING,
132 CONTACT_FEATURES_CONTACT_READ_WRITE,
133 DEVICE_LIST_CONTACT_READ);
135 contactMapping.insert(std::make_pair(
136 CONTACT_FUNCTION_API_CONVERT_FROM_STRING,
137 convertFromStringFunc));
140 AceFunction convertToStringFunc = ACE_CREATE_FUNCTION(
141 FUNCTION_EXPORT_EVENT_TO_STRING,
142 CONTACT_FUNCTION_API_CONVERT_TO_STRING,
143 CONTACT_FEATURES_CONTACT_READ_WRITE,
144 DEVICE_LIST_CONTACT_READ);
146 contactMapping.insert(std::make_pair(
147 CONTACT_FUNCTION_API_CONVERT_TO_STRING,
148 convertToStringFunc));
151 AceFunction addFunc = ACE_CREATE_FUNCTION(
153 CONTACT_FUNCTION_API_ADD,
154 CONTACT_FEATURES_CONTACT_WRITE,
155 DEVICE_LIST_CONTACT_WRITE);
157 contactMapping.insert(std::make_pair(
158 CONTACT_FUNCTION_API_ADD,
162 AceFunction addBatchFunc = ACE_CREATE_FUNCTION(
164 CONTACT_FUNCTION_API_ADD_BATCH,
165 CONTACT_FEATURES_CONTACT_WRITE,
166 DEVICE_LIST_CONTACT_WRITE);
168 contactMapping.insert(std::make_pair(
169 CONTACT_FUNCTION_API_ADD_BATCH,
173 AceFunction updateFunc = ACE_CREATE_FUNCTION(
174 FUNCTION_UPDATE_EVENT,
175 CONTACT_FUNCTION_API_UPDATE,
176 CONTACT_FEATURES_CONTACT_WRITE,
177 DEVICE_LIST_CONTACT_WRITE);
179 contactMapping.insert(std::make_pair(
180 CONTACT_FUNCTION_API_UPDATE,
184 AceFunction updateBatchFunc = ACE_CREATE_FUNCTION(
185 FUNCTION_UPDATE_EVENTS,
186 CONTACT_FUNCTION_API_UPDATE_BATCH,
187 CONTACT_FEATURES_CONTACT_WRITE,
188 DEVICE_LIST_CONTACT_WRITE);
190 contactMapping.insert(std::make_pair(
191 CONTACT_FUNCTION_API_UPDATE_BATCH,
195 AceFunction removeFunc = ACE_CREATE_FUNCTION(
196 FUNCTION_DELETE_EVENT,
197 CONTACT_FUNCTION_API_REMOVE,
198 CONTACT_FEATURES_CONTACT_WRITE,
199 DEVICE_LIST_CONTACT_WRITE);
201 contactMapping.insert(std::make_pair(
202 CONTACT_FUNCTION_API_REMOVE,
206 AceFunction removeBatchFunc = ACE_CREATE_FUNCTION(
207 FUNCTION_DELETE_EVENTS,
208 CONTACT_FUNCTION_API_REMOVE_BATCH,
209 CONTACT_FEATURES_CONTACT_WRITE,
210 DEVICE_LIST_CONTACT_WRITE);
212 contactMapping.insert(std::make_pair(
213 CONTACT_FUNCTION_API_REMOVE_BATCH,
217 AceFunction findFunc = ACE_CREATE_FUNCTION(
218 FUNCTION_FIND_EVENTS,
219 CONTACT_FUNCTION_API_FIND,
220 CONTACT_FEATURES_CONTACT_READ,
221 DEVICE_LIST_CONTACT_READ);
223 contactMapping.insert(std::make_pair(
224 CONTACT_FUNCTION_API_FIND,
228 AceFunction addChangeListenerFunc = ACE_CREATE_FUNCTION(
229 FUNCTION_ADD_CHANGE_LISTENER,
230 CONTACT_FUNCTION_API_ADD_CHANGE_LISTENER,
231 CONTACT_FEATURES_CONTACT_READ,
232 DEVICE_LIST_CONTACT_READ);
234 contactMapping.insert(std::make_pair(
235 CONTACT_FUNCTION_API_ADD_CHANGE_LISTENER,
236 addChangeListenerFunc));
238 //removeChangeListener
239 AceFunction removeChangeListenerFunc = ACE_CREATE_FUNCTION(
240 FUNCTION_REMOVE_CHANGE_LISTENER,
241 CONTACT_FUNCTION_API_REMOVE_CHANGE_LISTENER,
242 CONTACT_FEATURES_CONTACT_READ,
243 DEVICE_LIST_CONTACT_READ);
245 contactMapping.insert(std::make_pair(
246 CONTACT_FUNCTION_API_REMOVE_CHANGE_LISTENER,
247 removeChangeListenerFunc));
249 return contactMapping;