Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "chrome/browser/sync_file_system/local/canned_syncable_file_system.h" | 5 #include "chrome/browser/sync_file_system/local/canned_syncable_file_system.h" |
| 6 | 6 |
| 7 #include <iterator> | 7 #include <iterator> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 139 std::copy(entries.begin(), entries.end(), std::back_inserter(*entries_out)); | 139 std::copy(entries.begin(), entries.end(), std::back_inserter(*entries_out)); |
| 140 | 140 |
| 141 if (!has_more) | 141 if (!has_more) |
| 142 callback.Run(error); | 142 callback.Run(error); |
| 143 } | 143 } |
| 144 | 144 |
| 145 class WriteHelper { | 145 class WriteHelper { |
| 146 public: | 146 public: |
| 147 WriteHelper() : bytes_written_(0) {} | 147 WriteHelper() : bytes_written_(0) {} |
| 148 WriteHelper(MockBlobURLRequestContext* request_context, | 148 WriteHelper(MockBlobURLRequestContext* request_context, |
| 149 const GURL& blob_url, | 149 const std::string& blob_id, |
| 150 const std::string& blob_data) | 150 const std::string& blob_data) |
| 151 : bytes_written_(0), | 151 : bytes_written_(0), |
| 152 request_context_(request_context), | 152 request_context_(request_context), |
| 153 blob_data_(new ScopedTextBlob(*request_context, blob_url, blob_data)) {} | 153 blob_data_(new ScopedTextBlob(*request_context, blob_id, blob_data)) {} |
| 154 | 154 |
| 155 ~WriteHelper() { | 155 ~WriteHelper() { |
| 156 if (request_context_) { | 156 if (request_context_) { |
| 157 base::MessageLoop::current()->DeleteSoon(FROM_HERE, | 157 base::MessageLoop::current()->DeleteSoon(FROM_HERE, |
| 158 request_context_.release()); | 158 request_context_.release()); |
| 159 } | 159 } |
| 160 } | 160 } |
| 161 | 161 |
| 162 ScopedTextBlob* scoped_text_blob() const { return blob_data_.get(); } | |
| 163 | |
| 162 void DidWrite(const base::Callback<void(int64 result)>& completion_callback, | 164 void DidWrite(const base::Callback<void(int64 result)>& completion_callback, |
| 163 PlatformFileError error, int64 bytes, bool complete) { | 165 PlatformFileError error, int64 bytes, bool complete) { |
| 164 if (error == base::PLATFORM_FILE_OK) { | 166 if (error == base::PLATFORM_FILE_OK) { |
| 165 bytes_written_ += bytes; | 167 bytes_written_ += bytes; |
| 166 if (!complete) | 168 if (!complete) |
| 167 return; | 169 return; |
| 168 } | 170 } |
| 169 completion_callback.Run(error == base::PLATFORM_FILE_OK | 171 completion_callback.Run(error == base::PLATFORM_FILE_OK |
| 170 ? bytes_written_ : static_cast<int64>(error)); | 172 ? bytes_written_ : static_cast<int64>(error)); |
| 171 } | 173 } |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 440 io_task_runner_.get(), | 442 io_task_runner_.get(), |
| 441 FROM_HERE, | 443 FROM_HERE, |
| 442 base::Bind(&CannedSyncableFileSystem::DoReadDirectory, | 444 base::Bind(&CannedSyncableFileSystem::DoReadDirectory, |
| 443 base::Unretained(this), | 445 base::Unretained(this), |
| 444 url, | 446 url, |
| 445 entries)); | 447 entries)); |
| 446 } | 448 } |
| 447 | 449 |
| 448 int64 CannedSyncableFileSystem::Write( | 450 int64 CannedSyncableFileSystem::Write( |
| 449 net::URLRequestContext* url_request_context, | 451 net::URLRequestContext* url_request_context, |
| 450 const FileSystemURL& url, const GURL& blob_url) { | 452 const FileSystemURL& url, |
| 453 scoped_ptr<webkit_blob::BlobDataHandle> blob_data_handle) { | |
| 451 return RunOnThread<int64>(io_task_runner_.get(), | 454 return RunOnThread<int64>(io_task_runner_.get(), |
| 452 FROM_HERE, | 455 FROM_HERE, |
| 453 base::Bind(&CannedSyncableFileSystem::DoWrite, | 456 base::Bind(&CannedSyncableFileSystem::DoWrite, |
| 454 base::Unretained(this), | 457 base::Unretained(this), |
| 455 url_request_context, | 458 url_request_context, |
| 456 url, | 459 url, |
| 457 blob_url)); | 460 base::Passed(&blob_data_handle))); |
| 458 } | 461 } |
| 459 | 462 |
| 460 int64 CannedSyncableFileSystem::WriteString( | 463 int64 CannedSyncableFileSystem::WriteString( |
| 461 const FileSystemURL& url, const std::string& data) { | 464 const FileSystemURL& url, const std::string& data) { |
| 462 return RunOnThread<int64>(io_task_runner_.get(), | 465 return RunOnThread<int64>(io_task_runner_.get(), |
| 463 FROM_HERE, | 466 FROM_HERE, |
| 464 base::Bind(&CannedSyncableFileSystem::DoWriteString, | 467 base::Bind(&CannedSyncableFileSystem::DoWriteString, |
| 465 base::Unretained(this), | 468 base::Unretained(this), |
| 466 url, | 469 url, |
| 467 data)); | 470 data)); |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 618 const FileSystemURL& url, | 621 const FileSystemURL& url, |
| 619 FileEntryList* entries, | 622 FileEntryList* entries, |
| 620 const StatusCallback& callback) { | 623 const StatusCallback& callback) { |
| 621 EXPECT_TRUE(is_filesystem_opened_); | 624 EXPECT_TRUE(is_filesystem_opened_); |
| 622 operation_runner()->ReadDirectory( | 625 operation_runner()->ReadDirectory( |
| 623 url, base::Bind(&OnReadDirectory, entries, callback)); | 626 url, base::Bind(&OnReadDirectory, entries, callback)); |
| 624 } | 627 } |
| 625 | 628 |
| 626 void CannedSyncableFileSystem::DoWrite( | 629 void CannedSyncableFileSystem::DoWrite( |
| 627 net::URLRequestContext* url_request_context, | 630 net::URLRequestContext* url_request_context, |
| 628 const FileSystemURL& url, const GURL& blob_url, | 631 const FileSystemURL& url, |
| 632 scoped_ptr<webkit_blob::BlobDataHandle> blob_data_handle, | |
| 629 const WriteCallback& callback) { | 633 const WriteCallback& callback) { |
| 630 EXPECT_TRUE(is_filesystem_opened_); | 634 EXPECT_TRUE(is_filesystem_opened_); |
| 631 WriteHelper* helper = new WriteHelper; | 635 WriteHelper* helper = new WriteHelper; |
| 632 operation_runner()->Write(url_request_context, url, blob_url, 0, | 636 operation_runner()->Write(url_request_context, url, |
| 637 blob_data_handle.Pass(), 0, | |
| 633 base::Bind(&WriteHelper::DidWrite, | 638 base::Bind(&WriteHelper::DidWrite, |
| 634 base::Owned(helper), callback)); | 639 base::Owned(helper), callback)); |
| 635 } | 640 } |
| 636 | 641 |
| 637 void CannedSyncableFileSystem::DoWriteString( | 642 void CannedSyncableFileSystem::DoWriteString( |
| 638 const FileSystemURL& url, | 643 const FileSystemURL& url, |
| 639 const std::string& data, | 644 const std::string& data, |
| 640 const WriteCallback& callback) { | 645 const WriteCallback& callback) { |
| 641 MockBlobURLRequestContext* url_request_context( | 646 MockBlobURLRequestContext* url_request_context( |
| 642 new MockBlobURLRequestContext(file_system_context_.get())); | 647 new MockBlobURLRequestContext(file_system_context_.get())); |
| 643 const GURL blob_url(std::string("blob:") + data); | 648 const std::string blob_id(std::string("blob:") + data); |
|
ericu
2013/08/21 23:26:09
What's this blob_id for? Why are you putting the
michaeln
2013/08/27 23:24:06
Done.
| |
| 644 WriteHelper* helper = new WriteHelper(url_request_context, blob_url, data); | 649 WriteHelper* helper = new WriteHelper(url_request_context, blob_id, data); |
| 645 operation_runner()->Write(url_request_context, url, blob_url, 0, | 650 operation_runner()->Write(url_request_context, url, |
| 651 helper->scoped_text_blob()->GetBlobDataHandle(), 0, | |
| 646 base::Bind(&WriteHelper::DidWrite, | 652 base::Bind(&WriteHelper::DidWrite, |
| 647 base::Owned(helper), callback)); | 653 base::Owned(helper), callback)); |
| 648 } | 654 } |
| 649 | 655 |
| 650 void CannedSyncableFileSystem::DoGetUsageAndQuota( | 656 void CannedSyncableFileSystem::DoGetUsageAndQuota( |
| 651 int64* usage, | 657 int64* usage, |
| 652 int64* quota, | 658 int64* quota, |
| 653 const quota::StatusCallback& callback) { | 659 const quota::StatusCallback& callback) { |
| 654 quota_manager_->GetUsageAndQuota( | 660 quota_manager_->GetUsageAndQuota( |
| 655 origin_, storage_type(), | 661 origin_, storage_type(), |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 669 sync_status_ = status; | 675 sync_status_ = status; |
| 670 base::MessageLoop::current()->Quit(); | 676 base::MessageLoop::current()->Quit(); |
| 671 } | 677 } |
| 672 | 678 |
| 673 void CannedSyncableFileSystem::InitializeSyncStatusObserver() { | 679 void CannedSyncableFileSystem::InitializeSyncStatusObserver() { |
| 674 ASSERT_TRUE(io_task_runner_->RunsTasksOnCurrentThread()); | 680 ASSERT_TRUE(io_task_runner_->RunsTasksOnCurrentThread()); |
| 675 backend()->sync_context()->sync_status()->AddObserver(this); | 681 backend()->sync_context()->sync_status()->AddObserver(this); |
| 676 } | 682 } |
| 677 | 683 |
| 678 } // namespace sync_file_system | 684 } // namespace sync_file_system |
| OLD | NEW |