| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "webkit/fileapi/async_file_util_adapter.h" | 5 #include "webkit/fileapi/async_file_util_adapter.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/sequenced_task_runner.h" | 8 #include "base/sequenced_task_runner.h" |
| 9 #include "base/task_runner_util.h" | 9 #include "base/task_runner_util.h" |
| 10 #include "webkit/fileapi/file_system_context.h" | 10 #include "webkit/fileapi/file_system_context.h" |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 void ReplySnapshotFile( | 71 void ReplySnapshotFile( |
| 72 const AsyncFileUtil::CreateSnapshotFileCallback& callback) { | 72 const AsyncFileUtil::CreateSnapshotFileCallback& callback) { |
| 73 DCHECK(snapshot_policy_ != kSnapshotFileUnknown); | 73 DCHECK(snapshot_policy_ != kSnapshotFileUnknown); |
| 74 if (!callback.is_null()) | 74 if (!callback.is_null()) |
| 75 callback.Run(error_, file_info_, platform_path_, snapshot_policy_); | 75 callback.Run(error_, file_info_, platform_path_, snapshot_policy_); |
| 76 } | 76 } |
| 77 | 77 |
| 78 private: | 78 private: |
| 79 base::PlatformFileError error_; | 79 base::PlatformFileError error_; |
| 80 base::PlatformFileInfo file_info_; | 80 base::PlatformFileInfo file_info_; |
| 81 FilePath platform_path_; | 81 base::FilePath platform_path_; |
| 82 SnapshotFilePolicy snapshot_policy_; | 82 SnapshotFilePolicy snapshot_policy_; |
| 83 DISALLOW_COPY_AND_ASSIGN(GetFileInfoHelper); | 83 DISALLOW_COPY_AND_ASSIGN(GetFileInfoHelper); |
| 84 }; | 84 }; |
| 85 | 85 |
| 86 class ReadDirectoryHelper { | 86 class ReadDirectoryHelper { |
| 87 public: | 87 public: |
| 88 ReadDirectoryHelper() : error_(base::PLATFORM_FILE_OK) {} | 88 ReadDirectoryHelper() : error_(base::PLATFORM_FILE_OK) {} |
| 89 | 89 |
| 90 void RunWork(FileSystemFileUtil* file_util, | 90 void RunWork(FileSystemFileUtil* file_util, |
| 91 FileSystemOperationContext* context, | 91 FileSystemOperationContext* context, |
| 92 const FileSystemURL& url) { | 92 const FileSystemURL& url) { |
| 93 base::PlatformFileInfo file_info; | 93 base::PlatformFileInfo file_info; |
| 94 FilePath platform_path; | 94 base::FilePath platform_path; |
| 95 PlatformFileError error = file_util->GetFileInfo( | 95 PlatformFileError error = file_util->GetFileInfo( |
| 96 context, url, &file_info, &platform_path); | 96 context, url, &file_info, &platform_path); |
| 97 if (error != base::PLATFORM_FILE_OK) { | 97 if (error != base::PLATFORM_FILE_OK) { |
| 98 error_ = error; | 98 error_ = error; |
| 99 return; | 99 return; |
| 100 } | 100 } |
| 101 if (!file_info.is_directory) { | 101 if (!file_info.is_directory) { |
| 102 error_ = base::PLATFORM_FILE_ERROR_NOT_A_DIRECTORY; | 102 error_ = base::PLATFORM_FILE_ERROR_NOT_A_DIRECTORY; |
| 103 return; | 103 return; |
| 104 } | 104 } |
| 105 | 105 |
| 106 scoped_ptr<FileSystemFileUtil::AbstractFileEnumerator> file_enum( | 106 scoped_ptr<FileSystemFileUtil::AbstractFileEnumerator> file_enum( |
| 107 file_util->CreateFileEnumerator(context, url, false /* recursive */)); | 107 file_util->CreateFileEnumerator(context, url, false /* recursive */)); |
| 108 | 108 |
| 109 FilePath current; | 109 base::FilePath current; |
| 110 while (!(current = file_enum->Next()).empty()) { | 110 while (!(current = file_enum->Next()).empty()) { |
| 111 AsyncFileUtil::Entry entry; | 111 AsyncFileUtil::Entry entry; |
| 112 entry.is_directory = file_enum->IsDirectory(); | 112 entry.is_directory = file_enum->IsDirectory(); |
| 113 entry.name = VirtualPath::BaseName(current).value(); | 113 entry.name = VirtualPath::BaseName(current).value(); |
| 114 entry.size = file_enum->Size(); | 114 entry.size = file_enum->Size(); |
| 115 entry.last_modified_time = file_enum->LastModifiedTime(); | 115 entry.last_modified_time = file_enum->LastModifiedTime(); |
| 116 entries_.push_back(entry); | 116 entries_.push_back(entry); |
| 117 } | 117 } |
| 118 error_ = base::PLATFORM_FILE_OK; | 118 error_ = base::PLATFORM_FILE_OK; |
| 119 } | 119 } |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 250 return base::PostTaskAndReplyWithResult( | 250 return base::PostTaskAndReplyWithResult( |
| 251 context->task_runner(), FROM_HERE, | 251 context->task_runner(), FROM_HERE, |
| 252 Bind(&FileSystemFileUtil::CopyOrMoveFile, | 252 Bind(&FileSystemFileUtil::CopyOrMoveFile, |
| 253 Unretained(sync_file_util_.get()), | 253 Unretained(sync_file_util_.get()), |
| 254 context, src_url, dest_url, false /* copy */), | 254 context, src_url, dest_url, false /* copy */), |
| 255 callback); | 255 callback); |
| 256 } | 256 } |
| 257 | 257 |
| 258 bool AsyncFileUtilAdapter::CopyInForeignFile( | 258 bool AsyncFileUtilAdapter::CopyInForeignFile( |
| 259 FileSystemOperationContext* context, | 259 FileSystemOperationContext* context, |
| 260 const FilePath& src_file_path, | 260 const base::FilePath& src_file_path, |
| 261 const FileSystemURL& dest_url, | 261 const FileSystemURL& dest_url, |
| 262 const StatusCallback& callback) { | 262 const StatusCallback& callback) { |
| 263 return base::PostTaskAndReplyWithResult( | 263 return base::PostTaskAndReplyWithResult( |
| 264 context->task_runner(), FROM_HERE, | 264 context->task_runner(), FROM_HERE, |
| 265 Bind(&FileSystemFileUtil::CopyInForeignFile, | 265 Bind(&FileSystemFileUtil::CopyInForeignFile, |
| 266 Unretained(sync_file_util_.get()), | 266 Unretained(sync_file_util_.get()), |
| 267 context, src_file_path, dest_url), | 267 context, src_file_path, dest_url), |
| 268 callback); | 268 callback); |
| 269 } | 269 } |
| 270 | 270 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 297 const CreateSnapshotFileCallback& callback) { | 297 const CreateSnapshotFileCallback& callback) { |
| 298 GetFileInfoHelper* helper = new GetFileInfoHelper; | 298 GetFileInfoHelper* helper = new GetFileInfoHelper; |
| 299 return context->task_runner()->PostTaskAndReply( | 299 return context->task_runner()->PostTaskAndReply( |
| 300 FROM_HERE, | 300 FROM_HERE, |
| 301 Bind(&GetFileInfoHelper::CreateSnapshotFile, Unretained(helper), | 301 Bind(&GetFileInfoHelper::CreateSnapshotFile, Unretained(helper), |
| 302 sync_file_util_.get(), context, url), | 302 sync_file_util_.get(), context, url), |
| 303 Bind(&GetFileInfoHelper::ReplySnapshotFile, Owned(helper), callback)); | 303 Bind(&GetFileInfoHelper::ReplySnapshotFile, Owned(helper), callback)); |
| 304 } | 304 } |
| 305 | 305 |
| 306 } // namespace fileapi | 306 } // namespace fileapi |
| OLD | NEW |