| OLD | NEW |
| 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_index_file.h" | 5 #include "net/disk_cache/simple/simple_index_file.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
| 10 #include "base/files/memory_mapped_file.h" | 10 #include "base/files/memory_mapped_file.h" |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 last_used_time = file_info.last_modified; | 110 last_used_time = file_info.last_modified; |
| 111 | 111 |
| 112 int64 file_size = file_info.size; | 112 int64 file_size = file_info.size; |
| 113 SimpleIndex::EntrySet::iterator it = entries->find(hash_key); | 113 SimpleIndex::EntrySet::iterator it = entries->find(hash_key); |
| 114 if (it == entries->end()) { | 114 if (it == entries->end()) { |
| 115 SimpleIndex::InsertInEntrySet( | 115 SimpleIndex::InsertInEntrySet( |
| 116 hash_key, | 116 hash_key, |
| 117 EntryMetadata(last_used_time, file_size), | 117 EntryMetadata(last_used_time, file_size), |
| 118 entries); | 118 entries); |
| 119 } else { | 119 } else { |
| 120 // Summing up the total size of the entry through all the *_[0-2] files | 120 // Summing up the total size of the entry through all the *_[0-1] files |
| 121 it->second.SetEntrySize(it->second.GetEntrySize() + file_size); | 121 it->second.SetEntrySize(it->second.GetEntrySize() + file_size); |
| 122 } | 122 } |
| 123 } | 123 } |
| 124 | 124 |
| 125 } // namespace | 125 } // namespace |
| 126 | 126 |
| 127 SimpleIndexLoadResult::SimpleIndexLoadResult() : did_load(false), | 127 SimpleIndexLoadResult::SimpleIndexLoadResult() : did_load(false), |
| 128 flush_required(false) { | 128 flush_required(false) { |
| 129 } | 129 } |
| 130 | 130 |
| (...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 404 // static | 404 // static |
| 405 void SimpleIndexFile::SyncRestoreFromDisk( | 405 void SimpleIndexFile::SyncRestoreFromDisk( |
| 406 const base::FilePath& cache_directory, | 406 const base::FilePath& cache_directory, |
| 407 const base::FilePath& index_file_path, | 407 const base::FilePath& index_file_path, |
| 408 SimpleIndexLoadResult* out_result) { | 408 SimpleIndexLoadResult* out_result) { |
| 409 LOG(INFO) << "Simple Cache Index is being restored from disk."; | 409 LOG(INFO) << "Simple Cache Index is being restored from disk."; |
| 410 base::DeleteFile(index_file_path, /* recursive = */ false); | 410 base::DeleteFile(index_file_path, /* recursive = */ false); |
| 411 out_result->Reset(); | 411 out_result->Reset(); |
| 412 SimpleIndex::EntrySet* entries = &out_result->entries; | 412 SimpleIndex::EntrySet* entries = &out_result->entries; |
| 413 | 413 |
| 414 // TODO(felipeg,gavinp): Fix this once we have a one-file per entry format. | |
| 415 COMPILE_ASSERT(kSimpleEntryFileCount == 3, | |
| 416 file_pattern_must_match_file_count); | |
| 417 | |
| 418 const bool did_succeed = TraverseCacheDirectory( | 414 const bool did_succeed = TraverseCacheDirectory( |
| 419 cache_directory, base::Bind(&ProcessEntryFile, entries)); | 415 cache_directory, base::Bind(&ProcessEntryFile, entries)); |
| 420 if (!did_succeed) { | 416 if (!did_succeed) { |
| 421 LOG(ERROR) << "Could not reconstruct index from disk"; | 417 LOG(ERROR) << "Could not reconstruct index from disk"; |
| 422 return; | 418 return; |
| 423 } | 419 } |
| 424 out_result->did_load = true; | 420 out_result->did_load = true; |
| 425 // When we restore from disk we write the merged index file to disk right | 421 // When we restore from disk we write the merged index file to disk right |
| 426 // away, this might save us from having to restore again next time. | 422 // away, this might save us from having to restore again next time. |
| 427 out_result->flush_required = true; | 423 out_result->flush_required = true; |
| 428 } | 424 } |
| 429 | 425 |
| 430 // static | 426 // static |
| 431 bool SimpleIndexFile::IsIndexFileStale(base::Time cache_last_modified, | 427 bool SimpleIndexFile::IsIndexFileStale(base::Time cache_last_modified, |
| 432 const base::FilePath& index_file_path) { | 428 const base::FilePath& index_file_path) { |
| 433 base::Time index_mtime; | 429 base::Time index_mtime; |
| 434 if (!simple_util::GetMTime(index_file_path, &index_mtime)) | 430 if (!simple_util::GetMTime(index_file_path, &index_mtime)) |
| 435 return true; | 431 return true; |
| 436 return index_mtime < cache_last_modified; | 432 return index_mtime < cache_last_modified; |
| 437 } | 433 } |
| 438 | 434 |
| 439 } // namespace disk_cache | 435 } // namespace disk_cache |
| OLD | NEW |