| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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/stats.h" | 5 #include "net/disk_cache/stats.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
| 9 #include "net/disk_cache/backend_impl.h" | 9 #include "net/disk_cache/backend_impl.h" |
| 10 | 10 |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 return false; | 67 return false; |
| 68 | 68 |
| 69 size_t offset = address.start_block() * address.BlockSize() + | 69 size_t offset = address.start_block() * address.BlockSize() + |
| 70 kBlockHeaderSize; | 70 kBlockHeaderSize; |
| 71 if (!file->Read(stats, sizeof(*stats), offset)) | 71 if (!file->Read(stats, sizeof(*stats), offset)) |
| 72 return false; | 72 return false; |
| 73 | 73 |
| 74 if (stats->signature != kDiskSignature) | 74 if (stats->signature != kDiskSignature) |
| 75 return false; | 75 return false; |
| 76 | 76 |
| 77 // We don't want to discard the whole cache everytime we have one extra | 77 // We don't want to discard the whole cache every time we have one extra |
| 78 // counter; just reset them to zero. | 78 // counter; just reset them to zero. |
| 79 if (stats->size != sizeof(*stats)) | 79 if (stats->size != sizeof(*stats)) |
| 80 memset(stats, 0, sizeof(*stats)); | 80 memset(stats, 0, sizeof(*stats)); |
| 81 | 81 |
| 82 return true; | 82 return true; |
| 83 } | 83 } |
| 84 | 84 |
| 85 bool StoreStats(BackendImpl* backend, Addr address, OnDiskStats* stats) { | 85 bool StoreStats(BackendImpl* backend, Addr address, OnDiskStats* stats) { |
| 86 MappedFile* file = backend->File(address); | 86 MappedFile* file = backend->File(address); |
| 87 if (!file) | 87 if (!file) |
| (...skipping 25 matching lines...) Expand all Loading... |
| 113 if (!LoadStats(backend, address, &stats)) | 113 if (!LoadStats(backend, address, &stats)) |
| 114 return false; | 114 return false; |
| 115 } else { | 115 } else { |
| 116 if (!CreateStats(backend, &address, &stats)) | 116 if (!CreateStats(backend, &address, &stats)) |
| 117 return false; | 117 return false; |
| 118 *storage_addr = address.value(); | 118 *storage_addr = address.value(); |
| 119 } | 119 } |
| 120 | 120 |
| 121 storage_addr_ = address.value(); | 121 storage_addr_ = address.value(); |
| 122 backend_ = backend; | 122 backend_ = backend; |
| 123 size_histogram_.reset(new StatsHistogram(L"DiskCache.SizeStats")); | 123 if (!size_histogram_.get()) { |
| 124 size_histogram_->Init(this); | 124 // Stats may be reused when the cache is re-created, but we want only one |
| 125 // histogram at any given time. |
| 126 size_histogram_.reset(new StatsHistogram(L"DiskCache.SizeStats")); |
| 127 size_histogram_->Init(this); |
| 128 } |
| 125 | 129 |
| 126 memcpy(data_sizes_, stats.data_sizes, sizeof(data_sizes_)); | 130 memcpy(data_sizes_, stats.data_sizes, sizeof(data_sizes_)); |
| 127 memcpy(counters_, stats.counters, sizeof(counters_)); | 131 memcpy(counters_, stats.counters, sizeof(counters_)); |
| 128 | 132 |
| 129 return true; | 133 return true; |
| 130 } | 134 } |
| 131 | 135 |
| 132 Stats::~Stats() { | 136 Stats::~Stats() { |
| 133 if (!backend_) | 137 if (!backend_) |
| 134 return; | 138 return; |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 257 | 261 |
| 258 for (int i = MIN_COUNTER + 1; i < MAX_COUNTER; i++) { | 262 for (int i = MIN_COUNTER + 1; i < MAX_COUNTER; i++) { |
| 259 item.first = kCounterNames[i]; | 263 item.first = kCounterNames[i]; |
| 260 item.second = StringPrintf("0x%I64x", counters_[i]); | 264 item.second = StringPrintf("0x%I64x", counters_[i]); |
| 261 items->push_back(item); | 265 items->push_back(item); |
| 262 } | 266 } |
| 263 } | 267 } |
| 264 | 268 |
| 265 } // namespace disk_cache | 269 } // namespace disk_cache |
| 266 | 270 |
| OLD | NEW |