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

Side by Side Diff: webrtc/base/diskcache.cc

Issue 2620303003: Replace ASSERT by RTC_DCHECK in all non-test code. (Closed)
Patch Set: Address final nits. Created 3 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
« no previous file with comments | « webrtc/base/asyncudpsocket.cc ('k') | webrtc/base/httpbase.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 }; 59 };
60 60
61 /////////////////////////////////////////////////////////////////////////////// 61 ///////////////////////////////////////////////////////////////////////////////
62 // DiskCache 62 // DiskCache
63 /////////////////////////////////////////////////////////////////////////////// 63 ///////////////////////////////////////////////////////////////////////////////
64 64
65 DiskCache::DiskCache() : max_cache_(0), total_size_(0), total_accessors_(0) { 65 DiskCache::DiskCache() : max_cache_(0), total_size_(0), total_accessors_(0) {
66 } 66 }
67 67
68 DiskCache::~DiskCache() { 68 DiskCache::~DiskCache() {
69 ASSERT(0 == total_accessors_); 69 RTC_DCHECK(0 == total_accessors_);
70 } 70 }
71 71
72 bool DiskCache::Initialize(const std::string& folder, size_t size) { 72 bool DiskCache::Initialize(const std::string& folder, size_t size) {
73 if (!folder_.empty() || !Filesystem::CreateFolder(folder)) 73 if (!folder_.empty() || !Filesystem::CreateFolder(folder))
74 return false; 74 return false;
75 75
76 folder_ = folder; 76 folder_ = folder;
77 max_cache_ = size; 77 max_cache_ = size;
78 ASSERT(0 == total_size_); 78 RTC_DCHECK(0 == total_size_);
79 79
80 if (!InitializeEntries()) 80 if (!InitializeEntries())
81 return false; 81 return false;
82 82
83 return CheckLimit(); 83 return CheckLimit();
84 } 84 }
85 85
86 bool DiskCache::Purge() { 86 bool DiskCache::Purge() {
87 if (folder_.empty()) 87 if (folder_.empty())
88 return false; 88 return false;
(...skipping 25 matching lines...) Expand all
114 } 114 }
115 115
116 StreamInterface* DiskCache::WriteResource(const std::string& id, size_t index) { 116 StreamInterface* DiskCache::WriteResource(const std::string& id, size_t index) {
117 Entry* entry = GetOrCreateEntry(id, false); 117 Entry* entry = GetOrCreateEntry(id, false);
118 if (LS_LOCKED != entry->lock_state) 118 if (LS_LOCKED != entry->lock_state)
119 return NULL; 119 return NULL;
120 120
121 size_t previous_size = 0; 121 size_t previous_size = 0;
122 std::string filename(IdToFilename(id, index)); 122 std::string filename(IdToFilename(id, index));
123 FileStream::GetSize(filename, &previous_size); 123 FileStream::GetSize(filename, &previous_size);
124 ASSERT(previous_size <= entry->size); 124 RTC_DCHECK(previous_size <= entry->size);
125 if (previous_size > entry->size) { 125 if (previous_size > entry->size) {
126 previous_size = entry->size; 126 previous_size = entry->size;
127 } 127 }
128 128
129 std::unique_ptr<FileStream> file(new FileStream); 129 std::unique_ptr<FileStream> file(new FileStream);
130 if (!file->Open(filename, "wb", NULL)) { 130 if (!file->Open(filename, "wb", NULL)) {
131 LOG_F(LS_ERROR) << "Couldn't create cache file"; 131 LOG_F(LS_ERROR) << "Couldn't create cache file";
132 return NULL; 132 return NULL;
133 } 133 }
134 134
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 return success; 214 return success;
215 } 215 }
216 216
217 bool DiskCache::CheckLimit() { 217 bool DiskCache::CheckLimit() {
218 #if !defined(NDEBUG) 218 #if !defined(NDEBUG)
219 // Temporary check to make sure everything is working correctly. 219 // Temporary check to make sure everything is working correctly.
220 size_t cache_size = 0; 220 size_t cache_size = 0;
221 for (EntryMap::iterator it = map_.begin(); it != map_.end(); ++it) { 221 for (EntryMap::iterator it = map_.begin(); it != map_.end(); ++it) {
222 cache_size += it->second.size; 222 cache_size += it->second.size;
223 } 223 }
224 ASSERT(cache_size == total_size_); 224 RTC_DCHECK(cache_size == total_size_);
225 #endif 225 #endif
226 226
227 // TODO: Replace this with a non-brain-dead algorithm for clearing out the 227 // TODO: Replace this with a non-brain-dead algorithm for clearing out the
228 // oldest resources... something that isn't O(n^2) 228 // oldest resources... something that isn't O(n^2)
229 while (total_size_ > max_cache_) { 229 while (total_size_ > max_cache_) {
230 EntryMap::iterator oldest = map_.end(); 230 EntryMap::iterator oldest = map_.end();
231 for (EntryMap::iterator it = map_.begin(); it != map_.end(); ++it) { 231 for (EntryMap::iterator it = map_.begin(); it != map_.end(); ++it) {
232 if ((LS_UNLOCKED != it->second.lock_state) || (it->second.accessors > 0)) 232 if ((LS_UNLOCKED != it->second.lock_state) || (it->second.accessors > 0))
233 continue; 233 continue;
234 oldest = it; 234 oldest = it;
(...skipping 17 matching lines...) Expand all
252 } 252 }
253 253
254 std::string DiskCache::IdToFilename(const std::string& id, size_t index) const { 254 std::string DiskCache::IdToFilename(const std::string& id, size_t index) const {
255 #ifdef TRANSPARENT_CACHE_NAMES 255 #ifdef TRANSPARENT_CACHE_NAMES
256 // This escapes colons and other filesystem characters, so the user can't open 256 // This escapes colons and other filesystem characters, so the user can't open
257 // special devices (like "COM1:"), or access other directories. 257 // special devices (like "COM1:"), or access other directories.
258 size_t buffer_size = id.length()*3 + 1; 258 size_t buffer_size = id.length()*3 + 1;
259 char* buffer = new char[buffer_size]; 259 char* buffer = new char[buffer_size];
260 encode(buffer, buffer_size, id.data(), id.length(), 260 encode(buffer, buffer_size, id.data(), id.length(),
261 unsafe_filename_characters(), '%'); 261 unsafe_filename_characters(), '%');
262 // TODO: ASSERT(strlen(buffer) < FileSystem::MaxBasenameLength()); 262 // TODO(nisse): RTC_DCHECK(strlen(buffer) < FileSystem::MaxBasenameLength());
263 #else // !TRANSPARENT_CACHE_NAMES 263 #else // !TRANSPARENT_CACHE_NAMES
264 // We might want to just use a hash of the filename at some point, both for 264 // We might want to just use a hash of the filename at some point, both for
265 // obfuscation, and to avoid both filename length and escaping issues. 265 // obfuscation, and to avoid both filename length and escaping issues.
266 RTC_NOTREACHED(); 266 RTC_NOTREACHED();
267 #endif // !TRANSPARENT_CACHE_NAMES 267 #endif // !TRANSPARENT_CACHE_NAMES
268 268
269 char extension[32]; 269 char extension[32];
270 sprintfn(extension, arraysize(extension), ".%u", index); 270 sprintfn(extension, arraysize(extension), ".%u", index);
271 271
272 Pathname pathname; 272 Pathname pathname;
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 entry2->last_modified = time(0); 343 entry2->last_modified = time(0);
344 entry2->lock_state = LS_UNLOCKED; 344 entry2->lock_state = LS_UNLOCKED;
345 this2->CheckLimit(); 345 this2->CheckLimit();
346 } 346 }
347 } 347 }
348 } 348 }
349 349
350 /////////////////////////////////////////////////////////////////////////////// 350 ///////////////////////////////////////////////////////////////////////////////
351 351
352 } // namespace rtc 352 } // namespace rtc
OLDNEW
« no previous file with comments | « webrtc/base/asyncudpsocket.cc ('k') | webrtc/base/httpbase.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698