Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(189)

Side by Side Diff: webkit/browser/fileapi/async_file_util_adapter.cc

Issue 145303002: Convert Media Galleries to use base::File (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/browser/fileapi/async_file_util_adapter.h" 5 #include "webkit/browser/fileapi/async_file_util_adapter.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/sequenced_task_runner.h" 10 #include "base/sequenced_task_runner.h"
11 #include "base/task_runner_util.h" 11 #include "base/task_runner_util.h"
12 #include "webkit/browser/fileapi/file_system_context.h" 12 #include "webkit/browser/fileapi/file_system_context.h"
13 #include "webkit/browser/fileapi/file_system_file_util.h" 13 #include "webkit/browser/fileapi/file_system_file_util.h"
14 #include "webkit/browser/fileapi/file_system_operation_context.h" 14 #include "webkit/browser/fileapi/file_system_operation_context.h"
15 #include "webkit/browser/fileapi/file_system_url.h" 15 #include "webkit/browser/fileapi/file_system_url.h"
16 #include "webkit/common/blob/shareable_file_reference.h" 16 #include "webkit/common/blob/shareable_file_reference.h"
17 #include "webkit/common/fileapi/file_system_util.h" 17 #include "webkit/common/fileapi/file_system_util.h"
18 18
19 using base::Bind; 19 using base::Bind;
20 using base::Callback; 20 using base::Callback;
21 using base::Owned; 21 using base::Owned;
22 using base::PlatformFileError;
23 using base::Unretained; 22 using base::Unretained;
24 using webkit_blob::ShareableFileReference; 23 using webkit_blob::ShareableFileReference;
25 24
26 namespace fileapi { 25 namespace fileapi {
27 26
28 namespace { 27 namespace {
29 28
30 class EnsureFileExistsHelper { 29 class EnsureFileExistsHelper {
31 public: 30 public:
32 EnsureFileExistsHelper() : error_(base::PLATFORM_FILE_OK), created_(false) {} 31 EnsureFileExistsHelper() : error_(base::File::FILE_OK), created_(false) {}
33 32
34 void RunWork(FileSystemFileUtil* file_util, 33 void RunWork(FileSystemFileUtil* file_util,
35 FileSystemOperationContext* context, 34 FileSystemOperationContext* context,
36 const FileSystemURL& url) { 35 const FileSystemURL& url) {
37 error_ = file_util->EnsureFileExists(context, url, &created_); 36 error_ = file_util->EnsureFileExists(context, url, &created_);
38 } 37 }
39 38
40 void Reply(const AsyncFileUtil::EnsureFileExistsCallback& callback) { 39 void Reply(const AsyncFileUtil::EnsureFileExistsCallback& callback) {
41 callback.Run(error_, created_); 40 callback.Run(error_, created_);
42 } 41 }
43 42
44 private: 43 private:
45 base::PlatformFileError error_; 44 base::File::Error error_;
46 bool created_; 45 bool created_;
47 DISALLOW_COPY_AND_ASSIGN(EnsureFileExistsHelper); 46 DISALLOW_COPY_AND_ASSIGN(EnsureFileExistsHelper);
48 }; 47 };
49 48
50 class GetFileInfoHelper { 49 class GetFileInfoHelper {
51 public: 50 public:
52 GetFileInfoHelper() 51 GetFileInfoHelper()
53 : error_(base::PLATFORM_FILE_OK) {} 52 : error_(base::File::FILE_OK) {}
54 53
55 void GetFileInfo(FileSystemFileUtil* file_util, 54 void GetFileInfo(FileSystemFileUtil* file_util,
56 FileSystemOperationContext* context, 55 FileSystemOperationContext* context,
57 const FileSystemURL& url) { 56 const FileSystemURL& url) {
58 error_ = file_util->GetFileInfo(context, url, &file_info_, &platform_path_); 57 error_ = file_util->GetFileInfo(context, url, &file_info_, &platform_path_);
59 } 58 }
60 59
61 void CreateSnapshotFile(FileSystemFileUtil* file_util, 60 void CreateSnapshotFile(FileSystemFileUtil* file_util,
62 FileSystemOperationContext* context, 61 FileSystemOperationContext* context,
63 const FileSystemURL& url) { 62 const FileSystemURL& url) {
64 scoped_file_ = file_util->CreateSnapshotFile( 63 scoped_file_ = file_util->CreateSnapshotFile(
65 context, url, &error_, &file_info_, &platform_path_); 64 context, url, &error_, &file_info_, &platform_path_);
66 } 65 }
67 66
68 void ReplyFileInfo(const AsyncFileUtil::GetFileInfoCallback& callback) { 67 void ReplyFileInfo(const AsyncFileUtil::GetFileInfoCallback& callback) {
69 callback.Run(error_, file_info_); 68 callback.Run(error_, file_info_);
70 } 69 }
71 70
72 void ReplySnapshotFile( 71 void ReplySnapshotFile(
73 const AsyncFileUtil::CreateSnapshotFileCallback& callback) { 72 const AsyncFileUtil::CreateSnapshotFileCallback& callback) {
74 callback.Run(error_, file_info_, platform_path_, 73 callback.Run(error_, file_info_, platform_path_,
75 ShareableFileReference::GetOrCreate(scoped_file_.Pass())); 74 ShareableFileReference::GetOrCreate(scoped_file_.Pass()));
76 } 75 }
77 76
78 private: 77 private:
79 base::PlatformFileError error_; 78 base::File::Error error_;
80 base::PlatformFileInfo file_info_; 79 base::File::Info file_info_;
81 base::FilePath platform_path_; 80 base::FilePath platform_path_;
82 webkit_blob::ScopedFile scoped_file_; 81 webkit_blob::ScopedFile scoped_file_;
83 DISALLOW_COPY_AND_ASSIGN(GetFileInfoHelper); 82 DISALLOW_COPY_AND_ASSIGN(GetFileInfoHelper);
84 }; 83 };
85 84
86 class ReadDirectoryHelper { 85 class ReadDirectoryHelper {
87 public: 86 public:
88 ReadDirectoryHelper() : error_(base::PLATFORM_FILE_OK) {} 87 ReadDirectoryHelper() : error_(base::File::FILE_OK) {}
89 88
90 void RunWork(FileSystemFileUtil* file_util, 89 void RunWork(FileSystemFileUtil* file_util,
91 FileSystemOperationContext* context, 90 FileSystemOperationContext* context,
92 const FileSystemURL& url) { 91 const FileSystemURL& url) {
93 base::PlatformFileInfo file_info; 92 base::File::Info file_info;
94 base::FilePath platform_path; 93 base::FilePath platform_path;
95 PlatformFileError error = file_util->GetFileInfo( 94 base::File::Error error = file_util->GetFileInfo(
96 context, url, &file_info, &platform_path); 95 context, url, &file_info, &platform_path);
97 if (error != base::PLATFORM_FILE_OK) { 96 if (error != base::File::FILE_OK) {
98 error_ = error; 97 error_ = error;
99 return; 98 return;
100 } 99 }
101 if (!file_info.is_directory) { 100 if (!file_info.is_directory) {
102 error_ = base::PLATFORM_FILE_ERROR_NOT_A_DIRECTORY; 101 error_ = base::File::FILE_ERROR_NOT_A_DIRECTORY;
103 return; 102 return;
104 } 103 }
105 104
106 scoped_ptr<FileSystemFileUtil::AbstractFileEnumerator> file_enum( 105 scoped_ptr<FileSystemFileUtil::AbstractFileEnumerator> file_enum(
107 file_util->CreateFileEnumerator(context, url)); 106 file_util->CreateFileEnumerator(context, url));
108 107
109 base::FilePath current; 108 base::FilePath current;
110 while (!(current = file_enum->Next()).empty()) { 109 while (!(current = file_enum->Next()).empty()) {
111 DirectoryEntry entry; 110 DirectoryEntry entry;
112 entry.is_directory = file_enum->IsDirectory(); 111 entry.is_directory = file_enum->IsDirectory();
113 entry.name = VirtualPath::BaseName(current).value(); 112 entry.name = VirtualPath::BaseName(current).value();
114 entry.size = file_enum->Size(); 113 entry.size = file_enum->Size();
115 entry.last_modified_time = file_enum->LastModifiedTime(); 114 entry.last_modified_time = file_enum->LastModifiedTime();
116 entries_.push_back(entry); 115 entries_.push_back(entry);
117 } 116 }
118 error_ = base::PLATFORM_FILE_OK; 117 error_ = base::File::FILE_OK;
119 } 118 }
120 119
121 void Reply(const AsyncFileUtil::ReadDirectoryCallback& callback) { 120 void Reply(const AsyncFileUtil::ReadDirectoryCallback& callback) {
122 callback.Run(error_, entries_, false /* has_more */); 121 callback.Run(error_, entries_, false /* has_more */);
123 } 122 }
124 123
125 private: 124 private:
126 base::PlatformFileError error_; 125 base::File::Error error_;
127 std::vector<DirectoryEntry> entries_; 126 std::vector<DirectoryEntry> entries_;
128 DISALLOW_COPY_AND_ASSIGN(ReadDirectoryHelper); 127 DISALLOW_COPY_AND_ASSIGN(ReadDirectoryHelper);
129 }; 128 };
130 129
131 void RunCreateOrOpenCallback( 130 void RunCreateOrOpenCallback(
132 const AsyncFileUtil::CreateOrOpenCallback& callback, 131 const AsyncFileUtil::CreateOrOpenCallback& callback,
133 base::PlatformFileError result, 132 base::File::Error result,
134 base::PassPlatformFile file, 133 base::PassPlatformFile file,
135 bool created) { 134 bool created) {
136 callback.Run(result, file, base::Closure()); 135 callback.Run(result, file, base::Closure());
137 } 136 }
138 137
139 } // namespace 138 } // namespace
140 139
141 AsyncFileUtilAdapter::AsyncFileUtilAdapter( 140 AsyncFileUtilAdapter::AsyncFileUtilAdapter(
142 FileSystemFileUtil* sync_file_util) 141 FileSystemFileUtil* sync_file_util)
143 : sync_file_util_(sync_file_util) { 142 : sync_file_util_(sync_file_util) {
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 Unretained(sync_file_util_.get()), 324 Unretained(sync_file_util_.get()),
326 base::Owned(context_ptr), url), 325 base::Owned(context_ptr), url),
327 callback); 326 callback);
328 DCHECK(success); 327 DCHECK(success);
329 } 328 }
330 329
331 void AsyncFileUtilAdapter::DeleteRecursively( 330 void AsyncFileUtilAdapter::DeleteRecursively(
332 scoped_ptr<FileSystemOperationContext> context, 331 scoped_ptr<FileSystemOperationContext> context,
333 const FileSystemURL& url, 332 const FileSystemURL& url,
334 const StatusCallback& callback) { 333 const StatusCallback& callback) {
335 callback.Run(base::PLATFORM_FILE_ERROR_INVALID_OPERATION); 334 callback.Run(base::File::FILE_ERROR_INVALID_OPERATION);
336 } 335 }
337 336
338 void AsyncFileUtilAdapter::CreateSnapshotFile( 337 void AsyncFileUtilAdapter::CreateSnapshotFile(
339 scoped_ptr<FileSystemOperationContext> context, 338 scoped_ptr<FileSystemOperationContext> context,
340 const FileSystemURL& url, 339 const FileSystemURL& url,
341 const CreateSnapshotFileCallback& callback) { 340 const CreateSnapshotFileCallback& callback) {
342 FileSystemOperationContext* context_ptr = context.release(); 341 FileSystemOperationContext* context_ptr = context.release();
343 GetFileInfoHelper* helper = new GetFileInfoHelper; 342 GetFileInfoHelper* helper = new GetFileInfoHelper;
344 const bool success = context_ptr->task_runner()->PostTaskAndReply( 343 const bool success = context_ptr->task_runner()->PostTaskAndReply(
345 FROM_HERE, 344 FROM_HERE,
346 Bind(&GetFileInfoHelper::CreateSnapshotFile, Unretained(helper), 345 Bind(&GetFileInfoHelper::CreateSnapshotFile, Unretained(helper),
347 sync_file_util_.get(), base::Owned(context_ptr), url), 346 sync_file_util_.get(), base::Owned(context_ptr), url),
348 Bind(&GetFileInfoHelper::ReplySnapshotFile, Owned(helper), callback)); 347 Bind(&GetFileInfoHelper::ReplySnapshotFile, Owned(helper), callback));
349 DCHECK(success); 348 DCHECK(success);
350 } 349 }
351 350
352 } // namespace fileapi 351 } // namespace fileapi
OLDNEW
« no previous file with comments | « webkit/browser/fileapi/async_file_util.h ('k') | webkit/browser/fileapi/copy_or_move_file_validator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698