Beta merge 2
[profile/ivi/wrt-plugins-tizen.git] / src / standards / Tizen / Contact / 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 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"
30
31 #define CONTACT_DEVICE_CAP_READ "contact.read"
32 #define CONTACT_DEVICE_CAP_WRITE "contact.write"
33
34 using namespace WrtDeviceApis::Commons;
35
36 namespace TizenApis {
37 namespace Tizen1_0 {
38 namespace Contact {
39
40 static FunctionMapping createContactFunctions();
41
42 static FunctionMapping ContactFunctions =
43     createContactFunctions();
44
45 DEFINE_FUNCTION_GETTER(Contact, ContactFunctions);
46
47 static FunctionMapping createContactFunctions()
48 {
49     /**
50      * Device capabilities
51      */
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);
54
55     ACE_CREATE_DEVICE_CAPS_LIST(EMPTY_DEVICE_LIST);
56
57     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_CONTACT_READ);
58     ACE_ADD_DEVICE_CAP(DEVICE_LIST_CONTACT_READ, DEVICE_CAP_CONTACT_READ);
59
60     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_CONTACT_WRITE);
61     ACE_ADD_DEVICE_CAP(DEVICE_LIST_CONTACT_WRITE, DEVICE_CAP_CONTACT_WRITE);
62
63     /**
64      * Api Features
65      */
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);
69
70     ACE_CREATE_FEATURE_LIST(CONTACT_FEATURES_CONTACT_READ_WRITE);
71     ACE_ADD_API_FEATURE(CONTACT_FEATURES_CONTACT_READ_WRITE,
72                         FEATURE_CONTACT);
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);
77
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);
81
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);
86
87     ACE_CREATE_FEATURE_LIST(CONTACT_FEATURES_CONTACT);
88     ACE_ADD_API_FEATURE(CONTACT_FEATURES_CONTACT,
89                         FEATURE_CONTACT);
90
91     ACE_CREATE_FEATURE_LIST(CONTACT_FEATURES_READ);
92     ACE_ADD_API_FEATURE(CONTACT_FEATURES_CONTACT_READ,
93                         FEATURE_CONTACT_READ);
94
95     ACE_CREATE_FEATURE_LIST(CONTACT_FEATURES_WRITE);
96     ACE_ADD_API_FEATURE(CONTACT_FEATURES_WRITE,
97                         FEATURE_CONTACT_WRITE);
98
99     /**
100      * Functions
101      */
102
103     FunctionMapping contactMapping;
104
105     //getAddressBooks
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);
111
112     contactMapping.insert(std::make_pair(
113                                CONTACT_FUNCTION_API_GET_ADDRESS_BOOKS,
114                                getAddressBooksFunc));
115
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);
122
123     contactMapping.insert(std::make_pair(
124                                CONTACT_FUNCTION_API_GET_DEFAULT_ADDRESS_BOOK,
125                                getDefaultAddressBookFunc));
126
127
128     //convertFromString
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);
134
135     contactMapping.insert(std::make_pair(
136                                CONTACT_FUNCTION_API_CONVERT_FROM_STRING,
137                                convertFromStringFunc));
138
139     //convertToString
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);
145
146     contactMapping.insert(std::make_pair(
147                                CONTACT_FUNCTION_API_CONVERT_TO_STRING,
148                                convertToStringFunc));
149
150     //add
151     AceFunction addFunc = ACE_CREATE_FUNCTION(
152             FUNCTION_ADD_EVENT,
153             CONTACT_FUNCTION_API_ADD,
154             CONTACT_FEATURES_CONTACT_WRITE,
155             DEVICE_LIST_CONTACT_WRITE);
156
157     contactMapping.insert(std::make_pair(
158                                CONTACT_FUNCTION_API_ADD,
159                                addFunc));
160
161     //addBatch
162     AceFunction addBatchFunc = ACE_CREATE_FUNCTION(
163             FUNCTION_ADD_EVENTS,
164             CONTACT_FUNCTION_API_ADD_BATCH,
165             CONTACT_FEATURES_CONTACT_WRITE,
166             DEVICE_LIST_CONTACT_WRITE);
167
168     contactMapping.insert(std::make_pair(
169                                CONTACT_FUNCTION_API_ADD_BATCH,
170                                addBatchFunc));
171
172     //update
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);
178
179     contactMapping.insert(std::make_pair(
180                                CONTACT_FUNCTION_API_UPDATE,
181                                updateFunc));
182
183     //updateBatch
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);
189
190     contactMapping.insert(std::make_pair(
191                                CONTACT_FUNCTION_API_UPDATE_BATCH,
192                                updateBatchFunc));
193
194     //remove
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);
200
201     contactMapping.insert(std::make_pair(
202                                CONTACT_FUNCTION_API_REMOVE,
203                                removeFunc));
204
205     //removeBatch
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);
211
212     contactMapping.insert(std::make_pair(
213                                CONTACT_FUNCTION_API_REMOVE_BATCH,
214                                removeBatchFunc));
215
216     //find
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);
222
223     contactMapping.insert(std::make_pair(
224                                CONTACT_FUNCTION_API_FIND,
225                                findFunc));
226
227     //addChangeListener
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);
233
234     contactMapping.insert(std::make_pair(
235                                CONTACT_FUNCTION_API_ADD_CHANGE_LISTENER,
236                                addChangeListenerFunc));
237
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);
244
245     contactMapping.insert(std::make_pair(
246                                CONTACT_FUNCTION_API_REMOVE_CHANGE_LISTENER,
247                                removeChangeListenerFunc));
248
249     return contactMapping;
250 }
251
252 }
253
254