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 "plugin_config.h"
22 #include <Commons/FunctionDefinition.h>
23 #include <Commons/FunctionDeclaration.h>
24 #include <Commons/Exception.h>
27 #define FILESYSTEM_FEATURE_API_READ "http://tizen.org/privilege/filesystem.read"
28 #define FILESYSTEM_FEATURE_API_WRITE "http://tizen.org/privilege/filesystem.write"
31 namespace Filesystem {
35 static WrtDeviceApis::Commons::FunctionMapping createFilesystemFunctions();
37 static WrtDeviceApis::Commons::FunctionMapping FilesystemFunctions =
38 createFilesystemFunctions();
40 DEFINE_FUNCTION_GETTER(Filesystem, FilesystemFunctions);
42 static WrtDeviceApis::Commons::FunctionMapping createFilesystemFunctions()
44 using namespace WrtDeviceApis::Commons;
50 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_FILESYSTEM_READ,
51 FILESYSTEM_DEVICE_CAP_READ);
52 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_FILESYSTEM_WRITE,
53 FILESYSTEM_DEVICE_CAP_WRITE);
55 ACE_CREATE_DEVICE_CAPS_LIST(EMPTY_DEVICE_LIST);
57 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_FILESYSTEM_READ);
58 ACE_ADD_DEVICE_CAP(DEVICE_LIST_FILESYSTEM_READ, DEVICE_CAP_FILESYSTEM_READ);
60 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_FILESYSTEM_WRITE);
61 ACE_ADD_DEVICE_CAP(DEVICE_LIST_FILESYSTEM_WRITE,
62 DEVICE_CAP_FILESYSTEM_WRITE);
67 ACE_CREATE_FEATURE(FEATURE_READ, FILESYSTEM_FEATURE_API_READ);
68 ACE_CREATE_FEATURE(FEATURE_WRITE, FILESYSTEM_FEATURE_API_WRITE);
70 ACE_CREATE_FEATURE_LIST(FILESYSTEM_FEATURES_FILESYSTEM_READ);
72 ACE_ADD_API_FEATURE(FILESYSTEM_FEATURES_FILESYSTEM_READ,
75 ACE_CREATE_FEATURE_LIST(FILESYSTEM_FEATURES_FILESYSTEM_WRITE);
77 ACE_ADD_API_FEATURE(FILESYSTEM_FEATURES_FILESYSTEM_WRITE,
84 FunctionMapping FilesystemMapping;
86 AceFunction mgrResolveFunc = ACE_CREATE_FUNCTION(
88 FILESYSTEM_FUNCTION_API_MGR_RESOLVE,
89 FILESYSTEM_FEATURES_FILESYSTEM_READ,
90 EMPTY_DEVICE_LIST); // check of device-cap will be done inside resolve()
92 FilesystemMapping.insert(std::make_pair(
93 FILESYSTEM_FUNCTION_API_MGR_RESOLVE_ID,
96 AceFunction getStorageFunc = ACE_CREATE_FUNCTION(
98 FILESYSTEM_FUNCTION_API_GET_STORAGE,
99 FILESYSTEM_FEATURES_FILESYSTEM_READ,
102 FilesystemMapping.insert(std::make_pair(
103 FILESYSTEM_FUNCTION_API_GET_STORAGE,
106 AceFunction listStorageFunc = ACE_CREATE_FUNCTION(
107 FUNCTION_LIST_STORAGE,
108 FILESYSTEM_FUNCTION_API_LIST_STORAGE,
109 FILESYSTEM_FEATURES_FILESYSTEM_READ,
112 FilesystemMapping.insert(std::make_pair(
113 FILESYSTEM_FUNCTION_API_LIST_STORAGE,
116 AceFunction addStorageListenerFunc = ACE_CREATE_FUNCTION(
117 FUNCTION_ADD_STORAGE_LISTENER,
118 FILESYSTEM_FUNCTION_API_ADD_STORAGE_LISTENER,
119 FILESYSTEM_FEATURES_FILESYSTEM_WRITE,
122 FilesystemMapping.insert(std::make_pair(
123 FILESYSTEM_FUNCTION_API_ADD_STORAGE_LISTENER,
124 addStorageListenerFunc));
126 AceFunction removeStorageListenerFunc = ACE_CREATE_FUNCTION(
127 FUNCTION_REMOVE_STORAGE_LISTENER,
128 FILESYSTEM_FUNCTION_API_REMOVE_STORAGE_LISTENER,
129 FILESYSTEM_FEATURES_FILESYSTEM_WRITE,
132 FilesystemMapping.insert(std::make_pair(
133 FILESYSTEM_FUNCTION_API_REMOVE_STORAGE_LISTENER,
134 removeStorageListenerFunc));
136 AceFunction resolveFunc = ACE_CREATE_FUNCTION(
138 FILESYSTEM_FUNCTION_API_RESOLVE,
139 FILESYSTEM_FEATURES_FILESYSTEM_READ,
142 FilesystemMapping.insert(std::make_pair(
143 FILESYSTEM_FUNCTION_API_RESOLVE,
146 AceFunction toUriFunc = ACE_CREATE_FUNCTION(
148 FILESYSTEM_FUNCTION_API_TO_URI,
149 FILESYSTEM_FEATURES_FILESYSTEM_READ,
152 FilesystemMapping.insert(std::make_pair(
153 FILESYSTEM_FUNCTION_API_TO_URI,
156 AceFunction listFilesFunc = ACE_CREATE_FUNCTION(
158 FILESYSTEM_FUNCTION_API_LIST_FILES,
159 FILESYSTEM_FEATURES_FILESYSTEM_READ,
162 FilesystemMapping.insert(std::make_pair(
163 FILESYSTEM_FUNCTION_API_LIST_FILES,
166 AceFunction openStreamFunc = ACE_CREATE_FUNCTION(
167 FUNCTION_OPEN_STREAM,
168 FILESYSTEM_FUNCTION_API_OPEN_STREAM,
169 FILESYSTEM_FEATURES_FILESYSTEM_READ,
172 FilesystemMapping.insert(std::make_pair(
173 FILESYSTEM_FUNCTION_API_OPEN_STREAM,
176 AceFunction readAsTextFunc = ACE_CREATE_FUNCTION(
177 FUNCTION_READ_AS_TEXT,
178 FILESYSTEM_FUNCTION_API_READ_AS_TEXT,
179 FILESYSTEM_FEATURES_FILESYSTEM_READ,
182 FilesystemMapping.insert(std::make_pair(
183 FILESYSTEM_FUNCTION_API_READ_AS_TEXT,
189 AceFunction copyToFunc = ACE_CREATE_FUNCTION(
191 FILESYSTEM_FUNCTION_API_COPY_TO,
192 FILESYSTEM_FEATURES_FILESYSTEM_WRITE,
195 FilesystemMapping.insert(std::make_pair(
196 FILESYSTEM_FUNCTION_API_COPY_TO,
199 AceFunction moveToFunc = ACE_CREATE_FUNCTION(
201 FILESYSTEM_FUNCTION_API_MOVE_TO,
202 FILESYSTEM_FEATURES_FILESYSTEM_WRITE,
205 FilesystemMapping.insert(std::make_pair(
206 FILESYSTEM_FUNCTION_API_MOVE_TO,
209 AceFunction createDirFunc = ACE_CREATE_FUNCTION(
211 FILESYSTEM_FUNCTION_API_CREATE_DIR,
212 FILESYSTEM_FEATURES_FILESYSTEM_WRITE,
215 FilesystemMapping.insert(std::make_pair(
216 FILESYSTEM_FUNCTION_API_CREATE_DIR,
219 AceFunction createFileFunc = ACE_CREATE_FUNCTION(
220 FUNCTION_CREATE_FILE,
221 FILESYSTEM_FUNCTION_API_CREATE_FILE,
222 FILESYSTEM_FEATURES_FILESYSTEM_WRITE,
225 FilesystemMapping.insert(std::make_pair(
226 FILESYSTEM_FUNCTION_API_CREATE_FILE,
229 AceFunction deleteDirFunc = ACE_CREATE_FUNCTION(
231 FILESYSTEM_FUNCTION_API_DELETE_DIR,
232 FILESYSTEM_FEATURES_FILESYSTEM_WRITE,
235 FilesystemMapping.insert(std::make_pair(
236 FILESYSTEM_FUNCTION_API_DELETE_DIR,
239 AceFunction deleteFileFunc = ACE_CREATE_FUNCTION(
240 FUNCTION_DELETE_FILE,
241 FILESYSTEM_FUNCTION_API_DELETE_FILE,
242 FILESYSTEM_FEATURES_FILESYSTEM_WRITE,
245 FilesystemMapping.insert(std::make_pair(
246 FILESYSTEM_FUNCTION_API_DELETE_FILE,
249 AceFunction closeFunc = ACE_CREATE_FUNCTION(
251 FILESYSTEM_FUNCTION_API_CLOSE,
252 FILESYSTEM_FEATURES_FILESYSTEM_READ,
255 FilesystemMapping.insert(std::make_pair(
256 FILESYSTEM_FUNCTION_API_CLOSE,
259 AceFunction readFunc = ACE_CREATE_FUNCTION(
261 FILESYSTEM_FUNCTION_API_READ,
262 FILESYSTEM_FEATURES_FILESYSTEM_READ,
265 FilesystemMapping.insert(std::make_pair(
266 FILESYSTEM_FUNCTION_API_READ,
269 AceFunction readBytesFunc = ACE_CREATE_FUNCTION(
271 FILESYSTEM_FUNCTION_API_READ_BYTES,
272 FILESYSTEM_FEATURES_FILESYSTEM_READ,
275 FilesystemMapping.insert(std::make_pair(
276 FILESYSTEM_FUNCTION_API_READ_BYTES,
279 AceFunction readBase64Func = ACE_CREATE_FUNCTION(
280 FUNCTION_READ_BASE64,
281 FILESYSTEM_FUNCTION_API_READ_BASE64,
282 FILESYSTEM_FEATURES_FILESYSTEM_READ,
285 FilesystemMapping.insert(std::make_pair(
286 FILESYSTEM_FUNCTION_API_READ_BASE64,
289 AceFunction writeFunc = ACE_CREATE_FUNCTION(
291 FILESYSTEM_FUNCTION_API_WRITE,
292 FILESYSTEM_FEATURES_FILESYSTEM_WRITE,
295 FilesystemMapping.insert(std::make_pair(
296 FILESYSTEM_FUNCTION_API_WRITE,
299 AceFunction writeBytesFunc = ACE_CREATE_FUNCTION(
300 FUNCTION_WRITE_BYTES,
301 FILESYSTEM_FUNCTION_API_WRITE_BYTES,
302 FILESYSTEM_FEATURES_FILESYSTEM_WRITE,
305 FilesystemMapping.insert(std::make_pair(
306 FILESYSTEM_FUNCTION_API_WRITE_BYTES,
309 AceFunction writeBase64Func = ACE_CREATE_FUNCTION(
310 FUNCTION_WRITE_BASE64,
311 FILESYSTEM_FUNCTION_API_WRITE_BASE64,
312 FILESYSTEM_FEATURES_FILESYSTEM_WRITE,
315 FilesystemMapping.insert(std::make_pair(
316 FILESYSTEM_FUNCTION_API_WRITE_BASE64,
319 return FilesystemMapping;