OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/child/fileapi/file_system_dispatcher.h" | 5 #include "content/child/fileapi/file_system_dispatcher.h" |
6 | 6 |
7 #include "base/callback.h" | 7 #include "base/callback.h" |
8 #include "base/files/file_util.h" | 8 #include "base/files/file_util.h" |
| 9 #include "base/macros.h" |
9 #include "base/process/process.h" | 10 #include "base/process/process.h" |
10 #include "content/child/child_thread_impl.h" | 11 #include "content/child/child_thread_impl.h" |
11 #include "content/common/fileapi/file_system_messages.h" | 12 #include "content/common/fileapi/file_system_messages.h" |
12 #include "storage/common/fileapi/file_system_info.h" | 13 #include "storage/common/fileapi/file_system_info.h" |
13 | 14 |
14 namespace content { | 15 namespace content { |
15 | 16 |
16 class FileSystemDispatcher::CallbackDispatcher { | 17 class FileSystemDispatcher::CallbackDispatcher { |
17 public: | 18 public: |
18 typedef CallbackDispatcher self; | 19 typedef CallbackDispatcher self; |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 const GURL& root) { | 105 const GURL& root) { |
105 filesystem_callback_.Run(name, root); | 106 filesystem_callback_.Run(name, root); |
106 } | 107 } |
107 | 108 |
108 void DidResolveURL(const storage::FileSystemInfo& info, | 109 void DidResolveURL(const storage::FileSystemInfo& info, |
109 const base::FilePath& file_path, | 110 const base::FilePath& file_path, |
110 bool is_directory) { | 111 bool is_directory) { |
111 resolve_callback_.Run(info, file_path, is_directory); | 112 resolve_callback_.Run(info, file_path, is_directory); |
112 } | 113 } |
113 | 114 |
114 void DidWrite(int64 bytes, bool complete) { | 115 void DidWrite(int64_t bytes, bool complete) { |
115 write_callback_.Run(bytes, complete); | 116 write_callback_.Run(bytes, complete); |
116 } | 117 } |
117 | 118 |
118 private: | 119 private: |
119 CallbackDispatcher() {} | 120 CallbackDispatcher() {} |
120 | 121 |
121 StatusCallback status_callback_; | 122 StatusCallback status_callback_; |
122 MetadataCallback metadata_callback_; | 123 MetadataCallback metadata_callback_; |
123 CreateSnapshotFileCallback snapshot_callback_; | 124 CreateSnapshotFileCallback snapshot_callback_; |
124 ReadDirectoryCallback directory_callback_; | 125 ReadDirectoryCallback directory_callback_; |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
261 void FileSystemDispatcher::ReadDirectory( | 262 void FileSystemDispatcher::ReadDirectory( |
262 const GURL& path, | 263 const GURL& path, |
263 const ReadDirectoryCallback& success_callback, | 264 const ReadDirectoryCallback& success_callback, |
264 const StatusCallback& error_callback) { | 265 const StatusCallback& error_callback) { |
265 int request_id = dispatchers_.Add( | 266 int request_id = dispatchers_.Add( |
266 CallbackDispatcher::Create(success_callback, error_callback)); | 267 CallbackDispatcher::Create(success_callback, error_callback)); |
267 ChildThreadImpl::current()->Send( | 268 ChildThreadImpl::current()->Send( |
268 new FileSystemHostMsg_ReadDirectory(request_id, path)); | 269 new FileSystemHostMsg_ReadDirectory(request_id, path)); |
269 } | 270 } |
270 | 271 |
271 void FileSystemDispatcher::Truncate( | 272 void FileSystemDispatcher::Truncate(const GURL& path, |
272 const GURL& path, | 273 int64_t offset, |
273 int64 offset, | 274 int* request_id_out, |
274 int* request_id_out, | 275 const StatusCallback& callback) { |
275 const StatusCallback& callback) { | |
276 int request_id = dispatchers_.Add(CallbackDispatcher::Create(callback)); | 276 int request_id = dispatchers_.Add(CallbackDispatcher::Create(callback)); |
277 ChildThreadImpl::current()->Send( | 277 ChildThreadImpl::current()->Send( |
278 new FileSystemHostMsg_Truncate(request_id, path, offset)); | 278 new FileSystemHostMsg_Truncate(request_id, path, offset)); |
279 | 279 |
280 if (request_id_out) | 280 if (request_id_out) |
281 *request_id_out = request_id; | 281 *request_id_out = request_id; |
282 } | 282 } |
283 | 283 |
284 void FileSystemDispatcher::Write( | 284 void FileSystemDispatcher::Write(const GURL& path, |
285 const GURL& path, | 285 const std::string& blob_id, |
286 const std::string& blob_id, | 286 int64_t offset, |
287 int64 offset, | 287 int* request_id_out, |
288 int* request_id_out, | 288 const WriteCallback& success_callback, |
289 const WriteCallback& success_callback, | 289 const StatusCallback& error_callback) { |
290 const StatusCallback& error_callback) { | |
291 int request_id = dispatchers_.Add( | 290 int request_id = dispatchers_.Add( |
292 CallbackDispatcher::Create(success_callback, error_callback)); | 291 CallbackDispatcher::Create(success_callback, error_callback)); |
293 ChildThreadImpl::current()->Send( | 292 ChildThreadImpl::current()->Send( |
294 new FileSystemHostMsg_Write(request_id, path, blob_id, offset)); | 293 new FileSystemHostMsg_Write(request_id, path, blob_id, offset)); |
295 | 294 |
296 if (request_id_out) | 295 if (request_id_out) |
297 *request_id_out = request_id; | 296 *request_id_out = request_id; |
298 } | 297 } |
299 | 298 |
300 void FileSystemDispatcher::Cancel( | 299 void FileSystemDispatcher::Cancel( |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
384 } | 383 } |
385 | 384 |
386 void FileSystemDispatcher::OnDidFail( | 385 void FileSystemDispatcher::OnDidFail( |
387 int request_id, base::File::Error error_code) { | 386 int request_id, base::File::Error error_code) { |
388 CallbackDispatcher* dispatcher = dispatchers_.Lookup(request_id); | 387 CallbackDispatcher* dispatcher = dispatchers_.Lookup(request_id); |
389 DCHECK(dispatcher); | 388 DCHECK(dispatcher); |
390 dispatcher->DidFail(error_code); | 389 dispatcher->DidFail(error_code); |
391 dispatchers_.Remove(request_id); | 390 dispatchers_.Remove(request_id); |
392 } | 391 } |
393 | 392 |
394 void FileSystemDispatcher::OnDidWrite( | 393 void FileSystemDispatcher::OnDidWrite(int request_id, |
395 int request_id, int64 bytes, bool complete) { | 394 int64_t bytes, |
| 395 bool complete) { |
396 CallbackDispatcher* dispatcher = dispatchers_.Lookup(request_id); | 396 CallbackDispatcher* dispatcher = dispatchers_.Lookup(request_id); |
397 DCHECK(dispatcher); | 397 DCHECK(dispatcher); |
398 dispatcher->DidWrite(bytes, complete); | 398 dispatcher->DidWrite(bytes, complete); |
399 if (complete) | 399 if (complete) |
400 dispatchers_.Remove(request_id); | 400 dispatchers_.Remove(request_id); |
401 } | 401 } |
402 | 402 |
403 } // namespace content | 403 } // namespace content |
OLD | NEW |