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

Side by Side Diff: base/file_util_proxy.cc

Issue 8322009: base::Bind: Convert FileUtilProxy::ReadDirectoryCallback. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 2 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
« no previous file with comments | « base/file_util_proxy.h ('k') | webkit/fileapi/file_system_file_util_proxy.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "base/file_util_proxy.h" 5 #include "base/file_util_proxy.h"
6 6
7 #include "base/message_loop_proxy.h" 7 #include "base/message_loop_proxy.h"
8 8
9 // TODO(jianli): Move the code from anonymous namespace to base namespace so 9 // TODO(jianli): Move the code from anonymous namespace to base namespace so
10 // that all of the base:: prefixes would be unnecessary. 10 // that all of the base:: prefixes would be unnecessary.
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 } 414 }
415 415
416 private: 416 private:
417 FilePath file_path_; 417 FilePath file_path_;
418 bool exclusive_; 418 bool exclusive_;
419 bool recursive_; 419 bool recursive_;
420 }; 420 };
421 421
422 class RelayReadDirectory : public MessageLoopRelay { 422 class RelayReadDirectory : public MessageLoopRelay {
423 public: 423 public:
424 RelayReadDirectory(const FilePath& file_path, 424 RelayReadDirectory(
425 base::FileUtilProxy::ReadDirectoryCallback* callback) 425 const FilePath& file_path,
426 : callback_(callback), file_path_(file_path) { 426 const base::FileUtilProxy::ReadDirectoryCallback& callback)
427 DCHECK(callback); 427 : callback_(callback),
428 file_path_(file_path) {
429 DCHECK_EQ(false, callback.is_null());
428 } 430 }
429 431
430 protected: 432 protected:
431 virtual void RunWork() { 433 virtual void RunWork() {
432 // TODO(kkanetkar): Implement directory read in multiple chunks. 434 // TODO(kkanetkar): Implement directory read in multiple chunks.
433 if (!file_util::DirectoryExists(file_path_)) { 435 if (!file_util::DirectoryExists(file_path_)) {
434 set_error_code(base::PLATFORM_FILE_ERROR_NOT_FOUND); 436 set_error_code(base::PLATFORM_FILE_ERROR_NOT_FOUND);
435 return; 437 return;
436 } 438 }
437 439
(...skipping 11 matching lines...) Expand all
449 // if we use current.value(). 451 // if we use current.value().
450 entry.name = file_util::FileEnumerator::GetFilename(info).value(); 452 entry.name = file_util::FileEnumerator::GetFilename(info).value();
451 entry.size = file_util::FileEnumerator::GetFilesize(info); 453 entry.size = file_util::FileEnumerator::GetFilesize(info);
452 entry.last_modified_time = 454 entry.last_modified_time =
453 file_util::FileEnumerator::GetLastModifiedTime(info); 455 file_util::FileEnumerator::GetLastModifiedTime(info);
454 entries_.push_back(entry); 456 entries_.push_back(entry);
455 } 457 }
456 } 458 }
457 459
458 virtual void RunCallback() { 460 virtual void RunCallback() {
459 callback_->Run(error_code(), entries_); 461 callback_.Run(error_code(), entries_);
460 delete callback_;
461 } 462 }
462 463
463 private: 464 private:
464 base::FileUtilProxy::ReadDirectoryCallback* callback_; 465 base::FileUtilProxy::ReadDirectoryCallback callback_;
465 FilePath file_path_; 466 FilePath file_path_;
466 std::vector<base::FileUtilProxy::Entry> entries_; 467 std::vector<base::FileUtilProxy::Entry> entries_;
467 }; 468 };
468 469
469 class RelayGetFileInfo : public MessageLoopRelay { 470 class RelayGetFileInfo : public MessageLoopRelay {
470 public: 471 public:
471 RelayGetFileInfo(const FilePath& file_path, 472 RelayGetFileInfo(const FilePath& file_path,
472 const base::FileUtilProxy::GetFileInfoCallback& callback) 473 const base::FileUtilProxy::GetFileInfoCallback& callback)
473 : callback_(callback), 474 : callback_(callback),
474 file_path_(file_path) { 475 file_path_(file_path) {
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
783 PlatformFile file, 784 PlatformFile file,
784 const GetFileInfoCallback& callback) { 785 const GetFileInfoCallback& callback) {
785 return Start(FROM_HERE, message_loop_proxy, 786 return Start(FROM_HERE, message_loop_proxy,
786 new RelayGetFileInfoFromPlatformFile(file, callback)); 787 new RelayGetFileInfoFromPlatformFile(file, callback));
787 } 788 }
788 789
789 // static 790 // static
790 bool FileUtilProxy::ReadDirectory( 791 bool FileUtilProxy::ReadDirectory(
791 scoped_refptr<MessageLoopProxy> message_loop_proxy, 792 scoped_refptr<MessageLoopProxy> message_loop_proxy,
792 const FilePath& file_path, 793 const FilePath& file_path,
793 ReadDirectoryCallback* callback) { 794 const ReadDirectoryCallback& callback) {
794 return Start(FROM_HERE, message_loop_proxy, new RelayReadDirectory( 795 return Start(FROM_HERE, message_loop_proxy, new RelayReadDirectory(
795 file_path, callback)); 796 file_path, callback));
796 } 797 }
797 798
798 // static 799 // static
799 bool FileUtilProxy::CreateDirectory( 800 bool FileUtilProxy::CreateDirectory(
800 scoped_refptr<MessageLoopProxy> message_loop_proxy, 801 scoped_refptr<MessageLoopProxy> message_loop_proxy,
801 const FilePath& file_path, 802 const FilePath& file_path,
802 bool exclusive, 803 bool exclusive,
803 bool recursive, 804 bool recursive,
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
919 920
920 // static 921 // static
921 bool FileUtilProxy::Flush( 922 bool FileUtilProxy::Flush(
922 scoped_refptr<MessageLoopProxy> message_loop_proxy, 923 scoped_refptr<MessageLoopProxy> message_loop_proxy,
923 PlatformFile file, 924 PlatformFile file,
924 StatusCallback* callback) { 925 StatusCallback* callback) {
925 return Start(FROM_HERE, message_loop_proxy, new RelayFlush(file, callback)); 926 return Start(FROM_HERE, message_loop_proxy, new RelayFlush(file, callback));
926 } 927 }
927 928
928 } // namespace base 929 } // namespace base
OLDNEW
« no previous file with comments | « base/file_util_proxy.h ('k') | webkit/fileapi/file_system_file_util_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698