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

Side by Side Diff: content/browser/indexed_db/indexed_db_backing_store.cc

Issue 2941353002: Indexed DB: Use BindOnce / OnceCallback / OnceClosure where applicable (Closed)
Patch Set: Created 3 years, 6 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
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 "content/browser/indexed_db/indexed_db_backing_store.h" 5 #include "content/browser/indexed_db/indexed_db_backing_store.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 2406 matching lines...) Expand 10 before | Expand all | Expand 10 after
2417 WriteDescriptorVec* blobs, 2417 WriteDescriptorVec* blobs,
2418 scoped_refptr<IndexedDBBackingStore::BlobWriteCallback> callback) 2418 scoped_refptr<IndexedDBBackingStore::BlobWriteCallback> callback)
2419 : waiting_for_callback_(false), 2419 : waiting_for_callback_(false),
2420 database_id_(database_id), 2420 database_id_(database_id),
2421 backing_store_(backing_store), 2421 backing_store_(backing_store),
2422 callback_(callback), 2422 callback_(callback),
2423 aborted_(false) { 2423 aborted_(false) {
2424 blobs_.swap(*blobs); 2424 blobs_.swap(*blobs);
2425 iter_ = blobs_.begin(); 2425 iter_ = blobs_.begin();
2426 backing_store->task_runner()->PostTask( 2426 backing_store->task_runner()->PostTask(
2427 FROM_HERE, base::Bind(&ChainedBlobWriterImpl::WriteNextFile, this)); 2427 FROM_HERE, base::BindOnce(&ChainedBlobWriterImpl::WriteNextFile, this));
2428 } 2428 }
2429 2429
2430 void set_delegate(std::unique_ptr<FileWriterDelegate> delegate) override { 2430 void set_delegate(std::unique_ptr<FileWriterDelegate> delegate) override {
2431 delegate_.reset(delegate.release()); 2431 delegate_.reset(delegate.release());
2432 } 2432 }
2433 2433
2434 void ReportWriteCompletion(bool succeeded, int64_t bytes_written) override { 2434 void ReportWriteCompletion(bool succeeded, int64_t bytes_written) override {
2435 DCHECK(waiting_for_callback_); 2435 DCHECK(waiting_for_callback_);
2436 DCHECK(!succeeded || bytes_written >= 0); 2436 DCHECK(!succeeded || bytes_written >= 0);
2437 waiting_for_callback_ = false; 2437 waiting_for_callback_ = false;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
2519 } else { 2519 } else {
2520 DCHECK(write_status == FileWriterDelegate::ERROR_WRITE_STARTED || 2520 DCHECK(write_status == FileWriterDelegate::ERROR_WRITE_STARTED ||
2521 write_status == FileWriterDelegate::ERROR_WRITE_NOT_STARTED); 2521 write_status == FileWriterDelegate::ERROR_WRITE_NOT_STARTED);
2522 } 2522 }
2523 2523
2524 bool success = write_status == FileWriterDelegate::SUCCESS_COMPLETED; 2524 bool success = write_status == FileWriterDelegate::SUCCESS_COMPLETED;
2525 if (success && !bytes_written_) { 2525 if (success && !bytes_written_) {
2526 // LocalFileStreamWriter only creates a file if data is actually written. 2526 // LocalFileStreamWriter only creates a file if data is actually written.
2527 // If none was then create one now. 2527 // If none was then create one now.
2528 task_runner_->PostTask( 2528 task_runner_->PostTask(
2529 FROM_HERE, base::Bind(&LocalWriteClosure::CreateEmptyFile, this)); 2529 FROM_HERE, base::BindOnce(&LocalWriteClosure::CreateEmptyFile, this));
2530 } else if (success && !last_modified_.is_null()) { 2530 } else if (success && !last_modified_.is_null()) {
2531 task_runner_->PostTask( 2531 task_runner_->PostTask(
2532 FROM_HERE, base::Bind(&LocalWriteClosure::UpdateTimeStamp, this)); 2532 FROM_HERE, base::BindOnce(&LocalWriteClosure::UpdateTimeStamp, this));
2533 } else { 2533 } else {
2534 task_runner_->PostTask( 2534 task_runner_->PostTask(
2535 FROM_HERE, 2535 FROM_HERE,
2536 base::Bind(&IndexedDBBackingStore::Transaction::ChainedBlobWriter:: 2536 base::BindOnce(&IndexedDBBackingStore::Transaction::
2537 ReportWriteCompletion, 2537 ChainedBlobWriter::ReportWriteCompletion,
2538 chained_blob_writer_, 2538 chained_blob_writer_, success, bytes_written_));
2539 success,
2540 bytes_written_));
2541 } 2539 }
2542 } 2540 }
2543 2541
2544 void WriteBlobToFileOnIOThread( 2542 void WriteBlobToFileOnIOThread(
2545 const FilePath& file_path, 2543 const FilePath& file_path,
2546 const GURL& blob_url, 2544 const GURL& blob_url,
2547 const base::Time& last_modified, 2545 const base::Time& last_modified,
2548 scoped_refptr<net::URLRequestContextGetter> request_context_getter) { 2546 scoped_refptr<net::URLRequestContextGetter> request_context_getter) {
2549 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); 2547 DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
2550 std::unique_ptr<storage::FileStreamWriter> writer( 2548 std::unique_ptr<storage::FileStreamWriter> writer(
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
2670 } 2668 }
2671 if (!base::TouchFile(path, info.last_accessed, info.last_modified)) { 2669 if (!base::TouchFile(path, info.last_accessed, info.last_modified)) {
2672 // TODO(ericu): Complain quietly; timestamp's probably not vital. 2670 // TODO(ericu): Complain quietly; timestamp's probably not vital.
2673 } 2671 }
2674 } else { 2672 } else {
2675 // TODO(ericu): Complain quietly; timestamp's probably not vital. 2673 // TODO(ericu): Complain quietly; timestamp's probably not vital.
2676 } 2674 }
2677 2675
2678 task_runner_->PostTask( 2676 task_runner_->PostTask(
2679 FROM_HERE, 2677 FROM_HERE,
2680 base::Bind(&Transaction::ChainedBlobWriter::ReportWriteCompletion, 2678 base::BindOnce(&Transaction::ChainedBlobWriter::ReportWriteCompletion,
2681 chained_blob_writer, 2679 chained_blob_writer, true, info.size));
2682 true,
2683 info.size));
2684 } else { 2680 } else {
2685 DCHECK(descriptor.url().is_valid()); 2681 DCHECK(descriptor.url().is_valid());
2686 scoped_refptr<LocalWriteClosure> write_closure( 2682 scoped_refptr<LocalWriteClosure> write_closure(
2687 new LocalWriteClosure(chained_blob_writer, task_runner_.get())); 2683 new LocalWriteClosure(chained_blob_writer, task_runner_.get()));
2688 content::BrowserThread::PostTask( 2684 content::BrowserThread::PostTask(
2689 content::BrowserThread::IO, FROM_HERE, 2685 content::BrowserThread::IO, FROM_HERE,
2690 base::Bind(&LocalWriteClosure::WriteBlobToFileOnIOThread, 2686 base::BindOnce(&LocalWriteClosure::WriteBlobToFileOnIOThread,
2691 write_closure, path, descriptor.url(), 2687 write_closure, path, descriptor.url(),
2692 descriptor.last_modified(), request_context_getter_)); 2688 descriptor.last_modified(), request_context_getter_));
2693 } 2689 }
2694 return true; 2690 return true;
2695 } 2691 }
2696 2692
2697 void IndexedDBBackingStore::ReportBlobUnused(int64_t database_id, 2693 void IndexedDBBackingStore::ReportBlobUnused(int64_t database_id,
2698 int64_t blob_key) { 2694 int64_t blob_key) {
2699 DCHECK(KeyPrefix::IsValidDatabaseId(database_id)); 2695 DCHECK(KeyPrefix::IsValidDatabaseId(database_id));
2700 bool all_blobs = blob_key == DatabaseMetaDataKey::kAllBlobsKey; 2696 bool all_blobs = blob_key == DatabaseMetaDataKey::kAllBlobsKey;
2701 DCHECK(all_blobs || DatabaseMetaDataKey::IsValidBlobKey(blob_key)); 2697 DCHECK(all_blobs || DatabaseMetaDataKey::IsValidBlobKey(blob_key));
2702 scoped_refptr<LevelDBTransaction> transaction = 2698 scoped_refptr<LevelDBTransaction> transaction =
(...skipping 1789 matching lines...) Expand 10 before | Expand all | Expand 10 after
4492 4488
4493 IndexedDBBackingStore::Transaction::WriteDescriptor::WriteDescriptor( 4489 IndexedDBBackingStore::Transaction::WriteDescriptor::WriteDescriptor(
4494 const WriteDescriptor& other) = default; 4490 const WriteDescriptor& other) = default;
4495 IndexedDBBackingStore::Transaction::WriteDescriptor::~WriteDescriptor() = 4491 IndexedDBBackingStore::Transaction::WriteDescriptor::~WriteDescriptor() =
4496 default; 4492 default;
4497 IndexedDBBackingStore::Transaction::WriteDescriptor& 4493 IndexedDBBackingStore::Transaction::WriteDescriptor&
4498 IndexedDBBackingStore::Transaction::WriteDescriptor:: 4494 IndexedDBBackingStore::Transaction::WriteDescriptor::
4499 operator=(const WriteDescriptor& other) = default; 4495 operator=(const WriteDescriptor& other) = default;
4500 4496
4501 } // namespace content 4497 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698