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

Side by Side Diff: net/disk_cache/simple/simple_backend_impl.cc

Issue 1401923006: Reland of Implement cache counting for the simple and memory backends - with fixed test. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comment about APP_CACHE. Created 5 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
« no previous file with comments | « net/disk_cache/simple/simple_backend_impl.h ('k') | net/disk_cache/simple/simple_index.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) 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 "net/disk_cache/simple/simple_backend_impl.h" 5 #include "net/disk_cache/simple/simple_backend_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cstdlib> 8 #include <cstdlib>
9 #include <functional> 9 #include <functional>
10 10
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 } 435 }
436 scoped_refptr<SimpleEntryImpl> simple_entry = 436 scoped_refptr<SimpleEntryImpl> simple_entry =
437 CreateOrFindActiveEntry(entry_hash, key); 437 CreateOrFindActiveEntry(entry_hash, key);
438 return simple_entry->DoomEntry(callback); 438 return simple_entry->DoomEntry(callback);
439 } 439 }
440 440
441 int SimpleBackendImpl::DoomAllEntries(const CompletionCallback& callback) { 441 int SimpleBackendImpl::DoomAllEntries(const CompletionCallback& callback) {
442 return DoomEntriesBetween(Time(), Time(), callback); 442 return DoomEntriesBetween(Time(), Time(), callback);
443 } 443 }
444 444
445 void SimpleBackendImpl::IndexReadyForDoom(Time initial_time,
446 Time end_time,
447 const CompletionCallback& callback,
448 int result) {
449 if (result != net::OK) {
450 callback.Run(result);
451 return;
452 }
453 scoped_ptr<std::vector<uint64> > removed_key_hashes(
454 index_->GetEntriesBetween(initial_time, end_time).release());
455 DoomEntries(removed_key_hashes.get(), callback);
456 }
457
458 int SimpleBackendImpl::DoomEntriesBetween( 445 int SimpleBackendImpl::DoomEntriesBetween(
459 const Time initial_time, 446 const Time initial_time,
460 const Time end_time, 447 const Time end_time,
461 const CompletionCallback& callback) { 448 const CompletionCallback& callback) {
462 return index_->ExecuteWhenReady( 449 return index_->ExecuteWhenReady(
463 base::Bind(&SimpleBackendImpl::IndexReadyForDoom, AsWeakPtr(), 450 base::Bind(&SimpleBackendImpl::IndexReadyForDoom, AsWeakPtr(),
464 initial_time, end_time, callback)); 451 initial_time, end_time, callback));
465 } 452 }
466 453
467 int SimpleBackendImpl::DoomEntriesSince( 454 int SimpleBackendImpl::DoomEntriesSince(
468 const Time initial_time, 455 const Time initial_time,
469 const CompletionCallback& callback) { 456 const CompletionCallback& callback) {
470 return DoomEntriesBetween(initial_time, Time(), callback); 457 return DoomEntriesBetween(initial_time, Time(), callback);
471 } 458 }
472 459
473 int SimpleBackendImpl::CalculateSizeOfAllEntries( 460 int SimpleBackendImpl::CalculateSizeOfAllEntries(
474 const CompletionCallback& callback) { 461 const CompletionCallback& callback) {
475 // TODO(msramek): Implement. 462 return index_->ExecuteWhenReady(base::Bind(
476 return net::ERR_NOT_IMPLEMENTED; 463 &SimpleBackendImpl::IndexReadyForSizeCalculation, AsWeakPtr(), callback));
477 } 464 }
478 465
479 class SimpleBackendImpl::SimpleIterator final : public Iterator { 466 class SimpleBackendImpl::SimpleIterator final : public Iterator {
480 public: 467 public:
481 explicit SimpleIterator(base::WeakPtr<SimpleBackendImpl> backend) 468 explicit SimpleIterator(base::WeakPtr<SimpleBackendImpl> backend)
482 : backend_(backend), 469 : backend_(backend),
483 weak_factory_(this) { 470 weak_factory_(this) {
484 } 471 }
485 472
486 // From Backend::Iterator: 473 // From Backend::Iterator:
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 550
564 void SimpleBackendImpl::InitializeIndex(const CompletionCallback& callback, 551 void SimpleBackendImpl::InitializeIndex(const CompletionCallback& callback,
565 const DiskStatResult& result) { 552 const DiskStatResult& result) {
566 if (result.net_error == net::OK) { 553 if (result.net_error == net::OK) {
567 index_->SetMaxSize(result.max_size); 554 index_->SetMaxSize(result.max_size);
568 index_->Initialize(result.cache_dir_mtime); 555 index_->Initialize(result.cache_dir_mtime);
569 } 556 }
570 callback.Run(result.net_error); 557 callback.Run(result.net_error);
571 } 558 }
572 559
560 void SimpleBackendImpl::IndexReadyForDoom(Time initial_time,
561 Time end_time,
562 const CompletionCallback& callback,
563 int result) {
564 if (result != net::OK) {
565 callback.Run(result);
566 return;
567 }
568 scoped_ptr<std::vector<uint64>> removed_key_hashes(
569 index_->GetEntriesBetween(initial_time, end_time).release());
570 DoomEntries(removed_key_hashes.get(), callback);
571 }
572
573 void SimpleBackendImpl::IndexReadyForSizeCalculation(
574 const CompletionCallback& callback,
575 int result) {
576 if (result == net::OK)
577 result = static_cast<int>(index_->GetCacheSize());
578 callback.Run(result);
579 }
580
573 SimpleBackendImpl::DiskStatResult SimpleBackendImpl::InitCacheStructureOnDisk( 581 SimpleBackendImpl::DiskStatResult SimpleBackendImpl::InitCacheStructureOnDisk(
574 const base::FilePath& path, 582 const base::FilePath& path,
575 uint64 suggested_max_size) { 583 uint64 suggested_max_size) {
576 DiskStatResult result; 584 DiskStatResult result;
577 result.max_size = suggested_max_size; 585 result.max_size = suggested_max_size;
578 result.net_error = net::OK; 586 result.net_error = net::OK;
579 if (!FileStructureConsistent(path)) { 587 if (!FileStructureConsistent(path)) {
580 LOG(ERROR) << "Simple Cache Backend: wrong file structure on disk: " 588 LOG(ERROR) << "Simple Cache Backend: wrong file structure on disk: "
581 << path.LossyDisplayName(); 589 << path.LossyDisplayName();
582 result.net_error = net::ERR_FAILED; 590 result.net_error = net::ERR_FAILED;
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
739 } 747 }
740 748
741 // static 749 // static
742 void SimpleBackendImpl::FlushWorkerPoolForTesting() { 750 void SimpleBackendImpl::FlushWorkerPoolForTesting() {
743 // We only need to do this if we there is an active task runner. 751 // We only need to do this if we there is an active task runner.
744 if (base::ThreadTaskRunnerHandle::IsSet()) 752 if (base::ThreadTaskRunnerHandle::IsSet())
745 g_sequenced_worker_pool.Get().FlushForTesting(); 753 g_sequenced_worker_pool.Get().FlushForTesting();
746 } 754 }
747 755
748 } // namespace disk_cache 756 } // namespace disk_cache
OLDNEW
« no previous file with comments | « net/disk_cache/simple/simple_backend_impl.h ('k') | net/disk_cache/simple/simple_index.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698