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

Side by Side Diff: net/base/expiring_cache.h

Issue 11065052: [net] Add AsyncDNS.TTL histogram. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | net/base/host_cache.h » ('j') | net/base/host_cache.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef NET_BASE_EXPIRING_CACHE_H_ 5 #ifndef NET_BASE_EXPIRING_CACHE_H_
6 #define NET_BASE_EXPIRING_CACHE_H_ 6 #define NET_BASE_EXPIRING_CACHE_H_
7 7
8 #include <map> 8 #include <map>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 113
114 // Immediately remove expired entries. 114 // Immediately remove expired entries.
115 if (!expiration_comp_(now, it->second.second)) { 115 if (!expiration_comp_(now, it->second.second)) {
116 entries_.erase(it); 116 entries_.erase(it);
117 return NULL; 117 return NULL;
118 } 118 }
119 119
120 return &it->second.first; 120 return &it->second.first;
121 } 121 }
122 122
123 // Updates or replaces the value associated with |key|. 123 // Updates or replaces the value associated with |key|. Returns a pointer to
124 void Put(const KeyType& key, 124 // the stored value.
125 const ValueType& value, 125 ValueType* Put(const KeyType& key,
126 const ExpirationType& now, 126 const ValueType& value,
127 const ExpirationType& expiration) { 127 const ExpirationType& now,
128 const ExpirationType& expiration) {
128 typename EntryMap::iterator it = entries_.find(key); 129 typename EntryMap::iterator it = entries_.find(key);
129 if (it == entries_.end()) { 130 if (it == entries_.end()) {
130 // Compact the cache if it grew beyond the limit. 131 // Compact the cache if it grew beyond the limit.
131 if (entries_.size() == max_entries_ ) 132 if (entries_.size() == max_entries_ )
132 Compact(now); 133 Compact(now);
133 134
134 // No existing entry. Creating a new one. 135 // No existing entry. Creating a new one.
135 entries_.insert(std::make_pair(key, Entry(value, expiration))); 136 it = entries_.insert(std::make_pair(key, Entry(value, expiration))).first;
136 } else { 137 } else {
137 // Update an existing cache entry. 138 // Update an existing cache entry.
138 it->second.first = value; 139 it->second.first = value;
139 it->second.second = expiration; 140 it->second.second = expiration;
140 } 141 }
142 return &it->second.first;
141 } 143 }
142 144
143 // Empties the cache. 145 // Empties the cache.
144 void Clear() { 146 void Clear() {
145 entries_.clear(); 147 entries_.clear();
146 } 148 }
147 149
148 // Returns the number of entries in the cache. 150 // Returns the number of entries in the cache.
149 size_t size() const { return entries_.size(); } 151 size_t size() const { return entries_.size(); }
150 152
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 186
185 EntryMap entries_; 187 EntryMap entries_;
186 ExpirationCompare expiration_comp_; 188 ExpirationCompare expiration_comp_;
187 189
188 DISALLOW_COPY_AND_ASSIGN(ExpiringCache); 190 DISALLOW_COPY_AND_ASSIGN(ExpiringCache);
189 }; 191 };
190 192
191 } // namespace net 193 } // namespace net
192 194
193 #endif // NET_BASE_EXPIRING_CACHE_H_ 195 #endif // NET_BASE_EXPIRING_CACHE_H_
OLDNEW
« no previous file with comments | « no previous file | net/base/host_cache.h » ('j') | net/base/host_cache.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698