| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 // TODO(kinuko): may be better to change the file_util::{Copy,Move}. | 59 // TODO(kinuko): may be better to change the file_util::{Copy,Move}. |
| 60 if (!file_util::Delete(dest_file_path, false /* recursive */)) { | 60 if (!file_util::Delete(dest_file_path, false /* recursive */)) { |
| 61 if (!file_util::IsDirectoryEmpty(dest_file_path)) | 61 if (!file_util::IsDirectoryEmpty(dest_file_path)) |
| 62 return base::PLATFORM_FILE_ERROR_NOT_EMPTY; | 62 return base::PLATFORM_FILE_ERROR_NOT_EMPTY; |
| 63 return base::PLATFORM_FILE_ERROR_FAILED; | 63 return base::PLATFORM_FILE_ERROR_FAILED; |
| 64 } | 64 } |
| 65 } | 65 } |
| 66 return base::PLATFORM_FILE_OK; | 66 return base::PLATFORM_FILE_OK; |
| 67 } | 67 } |
| 68 | 68 |
| 69 } // anonymous namespace | 69 } // anonymous namespace |
| 70 | 70 |
| 71 class MessageLoopRelay | 71 class MessageLoopRelay |
| 72 : public base::RefCountedThreadSafe<MessageLoopRelay> { | 72 : public base::RefCountedThreadSafe<MessageLoopRelay> { |
| 73 public: | 73 public: |
| 74 MessageLoopRelay() | 74 MessageLoopRelay() |
| 75 : origin_message_loop_proxy_( | 75 : origin_message_loop_proxy_( |
| 76 base::MessageLoopProxy::CreateForCurrentThread()), | 76 base::MessageLoopProxy::CreateForCurrentThread()), |
| 77 error_code_(base::PLATFORM_FILE_OK) { | 77 error_code_(base::PLATFORM_FILE_OK) { |
| 78 } | 78 } |
| 79 | 79 |
| (...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 435 set_error_code(base::PLATFORM_FILE_ERROR_NOT_FOUND); | 435 set_error_code(base::PLATFORM_FILE_ERROR_NOT_FOUND); |
| 436 return; | 436 return; |
| 437 } | 437 } |
| 438 | 438 |
| 439 file_util::FileEnumerator file_enum( | 439 file_util::FileEnumerator file_enum( |
| 440 file_path_, false, static_cast<file_util::FileEnumerator::FILE_TYPE>( | 440 file_path_, false, static_cast<file_util::FileEnumerator::FILE_TYPE>( |
| 441 file_util::FileEnumerator::FILES | | 441 file_util::FileEnumerator::FILES | |
| 442 file_util::FileEnumerator::DIRECTORIES)); | 442 file_util::FileEnumerator::DIRECTORIES)); |
| 443 FilePath current; | 443 FilePath current; |
| 444 while (!(current = file_enum.Next()).empty()) { | 444 while (!(current = file_enum.Next()).empty()) { |
| 445 base::file_util_proxy::Entry entry; | 445 base::FileUtilProxy::Entry entry; |
| 446 file_util::FileEnumerator::FindInfo info; | 446 file_util::FileEnumerator::FindInfo info; |
| 447 file_enum.GetFindInfo(&info); | 447 file_enum.GetFindInfo(&info); |
| 448 entry.is_directory = file_enum.IsDirectory(info); | 448 entry.is_directory = file_enum.IsDirectory(info); |
| 449 // This will just give the entry's name instead of entire path | 449 // This will just give the entry's name instead of entire path |
| 450 // if we use current.value(). | 450 // if we use current.value(). |
| 451 entry.name = file_util::FileEnumerator::GetFilename(info).value(); | 451 entry.name = file_util::FileEnumerator::GetFilename(info).value(); |
| 452 entries_.push_back(entry); | 452 entries_.push_back(entry); |
| 453 } | 453 } |
| 454 } | 454 } |
| 455 | 455 |
| 456 virtual void RunCallback() { | 456 virtual void RunCallback() { |
| 457 callback_->Run(error_code(), entries_); | 457 callback_->Run(error_code(), entries_); |
| 458 delete callback_; | 458 delete callback_; |
| 459 } | 459 } |
| 460 | 460 |
| 461 private: | 461 private: |
| 462 base::FileUtilProxy::ReadDirectoryCallback* callback_; | 462 base::FileUtilProxy::ReadDirectoryCallback* callback_; |
| 463 FilePath file_path_; | 463 FilePath file_path_; |
| 464 std::vector<base::file_util_proxy::Entry> entries_; | 464 std::vector<base::FileUtilProxy::Entry> entries_; |
| 465 }; | 465 }; |
| 466 | 466 |
| 467 class RelayGetFileInfo : public MessageLoopRelay { | 467 class RelayGetFileInfo : public MessageLoopRelay { |
| 468 public: | 468 public: |
| 469 RelayGetFileInfo(const FilePath& file_path, | 469 RelayGetFileInfo(const FilePath& file_path, |
| 470 base::FileUtilProxy::GetFileInfoCallback* callback) | 470 base::FileUtilProxy::GetFileInfoCallback* callback) |
| 471 : callback_(callback), | 471 : callback_(callback), |
| 472 file_path_(file_path) { | 472 file_path_(file_path) { |
| 473 DCHECK(callback); | 473 DCHECK(callback); |
| 474 } | 474 } |
| (...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 908 | 908 |
| 909 // static | 909 // static |
| 910 bool FileUtilProxy::Flush( | 910 bool FileUtilProxy::Flush( |
| 911 scoped_refptr<MessageLoopProxy> message_loop_proxy, | 911 scoped_refptr<MessageLoopProxy> message_loop_proxy, |
| 912 PlatformFile file, | 912 PlatformFile file, |
| 913 StatusCallback* callback) { | 913 StatusCallback* callback) { |
| 914 return Start(FROM_HERE, message_loop_proxy, new RelayFlush(file, callback)); | 914 return Start(FROM_HERE, message_loop_proxy, new RelayFlush(file, callback)); |
| 915 } | 915 } |
| 916 | 916 |
| 917 } // namespace base | 917 } // namespace base |
| OLD | NEW |