Update change log and spec for wrt-plugins-tizen_0.4.11
[framework/web/wrt-plugins-tizen.git] / src / Content / plugin_config.cpp
1 //
2 // Tizen Web Device API
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
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
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
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.
16 //
17
18
19 #include <Commons/FunctionDefinition.h>
20 #include <Commons/FunctionDeclaration.h>
21 #include <iostream>
22 #include <Commons/Exception.h>
23 #include <dpl/exception.h>
24 #include <map>
25
26 #include "plugin_config.h"
27
28 #define CONTENT_FEATURE_API_READ  "http://tizen.org/privilege/content.read"
29 #define CONTENT_FEATURE_API_WRITE "http://tizen.org/privilege/content.write"
30 #define CONTENT_FEATURE_API_MANAGER_WRITE "http://tizen.org/privilege/contentmanager.write"
31
32
33 #define CONTENT_DEVICE_CAP_READ "content.read"
34 #define CONTENT_DEVICE_CAP_WRITE "content.write"
35 #define CONTENT_DEVICE_CAP_MANAGER_WRITE "contentmanager.write"
36
37
38 using namespace WrtDeviceApis::Commons;
39
40 namespace DeviceAPI {
41 namespace Content {
42
43 static FunctionMapping createContentFunctions();
44
45 static FunctionMapping ContentFunctions = createContentFunctions();
46
47 DEFINE_FUNCTION_GETTER(Content, ContentFunctions);
48
49 static FunctionMapping createContentFunctions()
50 {
51     /**
52      * Device capabilities
53      */
54     ACE_CREATE_DEVICE_CAP(DEVICE_CAP_CONTENT_READ, CONTENT_DEVICE_CAP_READ);
55     ACE_CREATE_DEVICE_CAP(DEVICE_CAP_CONTENT_WRITE, CONTENT_DEVICE_CAP_WRITE);
56     ACE_CREATE_DEVICE_CAP(DEVICE_CAP_CONTENT_MANAGER_WRITE, CONTENT_DEVICE_CAP_MANAGER_WRITE);
57
58     ACE_CREATE_DEVICE_CAPS_LIST(EMPTY_DEVICE_LIST);
59     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_CONTENT_READ);
60     ACE_ADD_DEVICE_CAP(DEVICE_LIST_CONTENT_READ, DEVICE_CAP_CONTENT_READ);
61
62     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_CONTENT_WRITE);
63     ACE_ADD_DEVICE_CAP(DEVICE_LIST_CONTENT_WRITE, DEVICE_CAP_CONTENT_WRITE);
64
65     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_CONTENT_MANAGER_WRITE);
66     ACE_ADD_DEVICE_CAP(DEVICE_LIST_CONTENT_MANAGER_WRITE, DEVICE_CAP_CONTENT_MANAGER_WRITE);
67
68     /**
69      * Api Features
70      */
71     ACE_CREATE_FEATURE(FEATURE_CONTENT_READ, CONTENT_FEATURE_API_READ);
72     ACE_CREATE_FEATURE(FEATURE_CONTENT_WRITE, CONTENT_FEATURE_API_WRITE);
73     ACE_CREATE_FEATURE(FEATURE_CONTENT_MANAGER_WRITE, CONTENT_FEATURE_API_MANAGER_WRITE);
74
75     ACE_CREATE_FEATURE_LIST(CONTENT_FEATURES_CONTENT_READ_WRITE);
76     ACE_ADD_API_FEATURE(CONTENT_FEATURES_CONTENT_READ_WRITE, FEATURE_CONTENT_READ);
77     ACE_ADD_API_FEATURE(CONTENT_FEATURES_CONTENT_READ_WRITE, FEATURE_CONTENT_WRITE);
78
79     ACE_CREATE_FEATURE_LIST(CONTENT_FEATURES_CONTENT_READ);
80     ACE_ADD_API_FEATURE(CONTENT_FEATURES_CONTENT_READ, FEATURE_CONTENT_READ);
81
82     ACE_CREATE_FEATURE_LIST(CONTENT_FEATURES_CONTENT_WRITE);
83     ACE_ADD_API_FEATURE(CONTENT_FEATURES_CONTENT_WRITE, FEATURE_CONTENT_WRITE);
84
85     ACE_CREATE_FEATURE_LIST(CONTENT_FEATURES_CONTENT_MANAGER_WRITE);
86     ACE_ADD_API_FEATURE(CONTENT_FEATURES_CONTENT_MANAGER_WRITE, FEATURE_CONTENT_MANAGER_WRITE);
87 #if 0
88     ACE_CREATE_FEATURE_LIST(CONTENT_FEATURES_CONTENT);
89     ACE_ADD_API_FEATURE(CONTENT_FEATURES_CONTENT,
90                         FEATURE_CONTENT);
91
92     ACE_CREATE_FEATURE_LIST(CONTENT_FEATURES_READ);
93     ACE_ADD_API_FEATURE(CONTENT_FEATURES_READ,
94                         FEATURE_CONTENT_READ);
95
96     ACE_CREATE_FEATURE_LIST(CONTENT_FEATURES_WRITE);
97     ACE_ADD_API_FEATURE(CONTENT_FEATURES_WRITE,
98                         FEATURE_CONTENT_WRITE);
99 #endif
100     /**
101      * Functions
102      */
103     FunctionMapping contentMapping;
104
105     //"getLocalMediaSource"
106     AceFunction getLocalMediaSourceFunc = ACE_CREATE_FUNCTION(
107             FUNCTION_GET_LOCAL_MEDIA_SOURCE,
108             CONTENT_FUNCTION_API_GET_LOCAL_MEDIASOURCE,
109             CONTENT_FEATURES_CONTENT_READ_WRITE,
110             DEVICE_LIST_CONTENT_READ);
111
112     contentMapping.insert(std::make_pair(
113                                CONTENT_FUNCTION_API_GET_LOCAL_MEDIASOURCE,
114                                getLocalMediaSourceFunc));
115
116
117     //findItems
118     AceFunction findItemsFunc = ACE_CREATE_FUNCTION(
119             FUNCTION_FIND_ITEMS,
120             CONTENT_FUNCTION_API_FIND_ITEMS,
121             CONTENT_FEATURES_CONTENT_READ,
122             DEVICE_LIST_CONTENT_READ);
123
124     contentMapping.insert(std::make_pair(
125                                CONTENT_FUNCTION_API_FIND_ITEMS,
126                                findItemsFunc));
127
128
129     //updateItem
130     AceFunction updateItemFunc = ACE_CREATE_FUNCTION(
131             FUNCTION_UPDATE_ITEM,
132             CONTENT_FUNCTION_API_UPDATE_ITEM,
133             CONTENT_FEATURES_CONTENT_WRITE,
134             DEVICE_LIST_CONTENT_WRITE);
135
136     contentMapping.insert(std::make_pair(
137                                CONTENT_FUNCTION_API_UPDATE_ITEM,
138                                updateItemFunc));
139
140     //updateItemsBatch
141     AceFunction updateItemsBatchFunc = ACE_CREATE_FUNCTION(
142             FUNCTION_UPDATE_ITEMS_BATCH,
143             CONTENT_FUNCTION_API_UPDATE_ITEMS_BATCH,
144             CONTENT_FEATURES_CONTENT_WRITE,
145             DEVICE_LIST_CONTENT_WRITE);
146
147     contentMapping.insert(std::make_pair(
148                                CONTENT_FUNCTION_API_UPDATE_ITEMS_BATCH,
149                                updateItemsBatchFunc));
150
151     //scanFile
152     AceFunction scanFileFunc = ACE_CREATE_FUNCTION(
153             FUNCTION_SCAN_FILE,
154             CONTENT_FUNCTION_API_SCAN_FILE,
155             CONTENT_FEATURES_CONTENT_WRITE,
156             DEVICE_LIST_CONTENT_WRITE);
157
158     contentMapping.insert(std::make_pair(
159                                CONTENT_FUNCTION_API_SCAN_FILE,
160                                scanFileFunc));
161
162     //setChangeListener
163     AceFunction setListenerFunc = ACE_CREATE_FUNCTION(
164                         FUNCTION_SET_CHANGE_LISTENER,
165             CONTENT_FUNCTION_API_SET_CHANGE_LISTENER,
166             CONTENT_FEATURES_CONTENT_READ,
167             DEVICE_LIST_CONTENT_READ);
168
169     contentMapping.insert(std::make_pair(
170                                CONTENT_FUNCTION_API_SET_CHANGE_LISTENER,
171                                setListenerFunc));
172
173     //unsetChangeListener
174     AceFunction unsetListenerFunc = ACE_CREATE_FUNCTION(
175             FUNCTION_UNSET_CHANGE_LISTENER,
176             CONTENT_FUNCTION_API_UNSET_CHANGE_LISTENER,
177             CONTENT_FEATURES_CONTENT_READ,
178             DEVICE_LIST_CONTENT_READ);
179
180     contentMapping.insert(std::make_pair(
181                                CONTENT_FUNCTION_API_UNSET_CHANGE_LISTENER,
182                                unsetListenerFunc));
183
184     //updateMetadata
185     AceFunction updateMetadataFunc = ACE_CREATE_FUNCTION(
186             FUNCTION_UPDATE_METADATA,
187             CONTENT_FUNCTION_API_UPDATE_METADATA,
188             CONTENT_FEATURES_CONTENT_MANAGER_WRITE,
189             DEVICE_LIST_CONTENT_MANAGER_WRITE);
190
191     contentMapping.insert(std::make_pair(
192                                CONTENT_FUNCTION_API_UPDATE_METADATA,
193                                updateMetadataFunc));
194
195
196     return contentMapping;
197 }
198
199 }
200 }