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

Side by Side Diff: net/disk_cache/backend_impl.cc

Issue 9088002: Revert "Revert the disk_cache change part of http://codereview.chromium.org/9035012" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 11 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | tools/valgrind/gtest_exclude/net_unittests.gtest-tsan_win32.txt » ('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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/backend_impl.h" 5 #include "net/disk_cache/backend_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/file_path.h" 9 #include "base/file_path.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 // Returns a fully qualified name from path and name, using a given name prefix 80 // Returns a fully qualified name from path and name, using a given name prefix
81 // and index number. For instance, if the arguments are "/foo", "bar" and 5, it 81 // and index number. For instance, if the arguments are "/foo", "bar" and 5, it
82 // will return "/foo/old_bar_005". 82 // will return "/foo/old_bar_005".
83 FilePath GetPrefixedName(const FilePath& path, const std::string& name, 83 FilePath GetPrefixedName(const FilePath& path, const std::string& name,
84 int index) { 84 int index) {
85 std::string tmp = base::StringPrintf("%s%s_%03d", "old_", 85 std::string tmp = base::StringPrintf("%s%s_%03d", "old_",
86 name.c_str(), index); 86 name.c_str(), index);
87 return path.AppendASCII(tmp); 87 return path.AppendASCII(tmp);
88 } 88 }
89 89
90 // This is a simple Task to cleanup old caches. 90 // This is a simple callback to cleanup old caches.
91 class CleanupTask : public Task { 91 void CleanupCallback(const FilePath& path, const std::string& name) {
92 public:
93 CleanupTask(const FilePath& path, const std::string& name)
94 : path_(path), name_(name) {}
95
96 virtual void Run();
97
98 private:
99 FilePath path_;
100 std::string name_;
101 DISALLOW_COPY_AND_ASSIGN(CleanupTask);
102 };
103
104 void CleanupTask::Run() {
105 for (int i = 0; i < kMaxOldFolders; i++) { 92 for (int i = 0; i < kMaxOldFolders; i++) {
106 FilePath to_delete = GetPrefixedName(path_, name_, i); 93 FilePath to_delete = GetPrefixedName(path, name, i);
107 disk_cache::DeleteCache(to_delete, true); 94 disk_cache::DeleteCache(to_delete, true);
108 } 95 }
109 } 96 }
110 97
111 // Returns a full path to rename the current cache, in order to delete it. path 98 // Returns a full path to rename the current cache, in order to delete it. path
112 // is the current folder location, and name is the current folder name. 99 // is the current folder location, and name is the current folder name.
113 FilePath GetTempCacheName(const FilePath& path, const std::string& name) { 100 FilePath GetTempCacheName(const FilePath& path, const std::string& name) {
114 // We'll attempt to have up to kMaxOldFolders folders for deletion. 101 // We'll attempt to have up to kMaxOldFolders folders for deletion.
115 for (int i = 0; i < kMaxOldFolders; i++) { 102 for (int i = 0; i < kMaxOldFolders; i++) {
116 FilePath to_delete = GetPrefixedName(path, name, i); 103 FilePath to_delete = GetPrefixedName(path, name, i);
(...skipping 24 matching lines...) Expand all
141 if (to_delete.empty()) { 128 if (to_delete.empty()) {
142 LOG(ERROR) << "Unable to get another cache folder"; 129 LOG(ERROR) << "Unable to get another cache folder";
143 return false; 130 return false;
144 } 131 }
145 132
146 if (!disk_cache::MoveCache(full_path, to_delete)) { 133 if (!disk_cache::MoveCache(full_path, to_delete)) {
147 LOG(ERROR) << "Unable to move cache folder"; 134 LOG(ERROR) << "Unable to move cache folder";
148 return false; 135 return false;
149 } 136 }
150 137
151 base::WorkerPool::PostTask(FROM_HERE, new CleanupTask(path, name_str), true); 138 base::WorkerPool::PostTask(
139 FROM_HERE, base::Bind(&CleanupCallback, path, name_str), true);
152 return true; 140 return true;
153 } 141 }
154 142
155 // Initializes the field trial structures to allow performance measurements 143 // Initializes the field trial structures to allow performance measurements
156 // for the current cache configuration. 144 // for the current cache configuration.
157 void SetFieldTrialInfo(int group) { 145 void SetFieldTrialInfo(int group) {
158 static bool first = true; 146 static bool first = true;
159 if (!first) 147 if (!first)
160 return; 148 return;
161 149
(...skipping 2068 matching lines...) Expand 10 before | Expand all | Expand 10 after
2230 if (total_memory > kMaxBuffersSize || total_memory <= 0) 2218 if (total_memory > kMaxBuffersSize || total_memory <= 0)
2231 total_memory = kMaxBuffersSize; 2219 total_memory = kMaxBuffersSize;
2232 2220
2233 done = true; 2221 done = true;
2234 } 2222 }
2235 2223
2236 return static_cast<int>(total_memory); 2224 return static_cast<int>(total_memory);
2237 } 2225 }
2238 2226
2239 } // namespace disk_cache 2227 } // namespace disk_cache
OLDNEW
« no previous file with comments | « no previous file | tools/valgrind/gtest_exclude/net_unittests.gtest-tsan_win32.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698