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

Side by Side Diff: net/disk_cache/blockfile/rankings.h

Issue 266243004: Clang format slam. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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
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 // See net/disk_cache/disk_cache.h for the public interface. 5 // See net/disk_cache/disk_cache.h for the public interface.
6 6
7 #ifndef NET_DISK_CACHE_BLOCKFILE_RANKINGS_H_ 7 #ifndef NET_DISK_CACHE_BLOCKFILE_RANKINGS_H_
8 #define NET_DISK_CACHE_BLOCKFILE_RANKINGS_H_ 8 #define NET_DISK_CACHE_BLOCKFILE_RANKINGS_H_
9 9
10 #include <list> 10 #include <list>
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 REMOVE_LOAD_2, 47 REMOVE_LOAD_2,
48 REMOVE_LOAD_3, 48 REMOVE_LOAD_3,
49 MAX_CRASH 49 MAX_CRASH
50 }; 50 };
51 51
52 // This class handles the ranking information for the cache. 52 // This class handles the ranking information for the cache.
53 class Rankings { 53 class Rankings {
54 public: 54 public:
55 // Possible lists of entries. 55 // Possible lists of entries.
56 enum List { 56 enum List {
57 NO_USE = 0, // List of entries that have not been reused. 57 NO_USE = 0, // List of entries that have not been reused.
58 LOW_USE, // List of entries with low reuse. 58 LOW_USE, // List of entries with low reuse.
59 HIGH_USE, // List of entries with high reuse. 59 HIGH_USE, // List of entries with high reuse.
60 RESERVED, // Reserved for future use. 60 RESERVED, // Reserved for future use.
61 DELETED, // List of recently deleted or doomed entries. 61 DELETED, // List of recently deleted or doomed entries.
62 LAST_ELEMENT 62 LAST_ELEMENT
63 }; 63 };
64 64
65 // This class provides a specialized version of scoped_ptr, that calls 65 // This class provides a specialized version of scoped_ptr, that calls
66 // Rankings whenever a CacheRankingsBlock is deleted, to keep track of cache 66 // Rankings whenever a CacheRankingsBlock is deleted, to keep track of cache
67 // iterators that may go stale. 67 // iterators that may go stale.
68 class ScopedRankingsBlock : public scoped_ptr<CacheRankingsBlock> { 68 class ScopedRankingsBlock : public scoped_ptr<CacheRankingsBlock> {
69 public: 69 public:
70 ScopedRankingsBlock(); 70 ScopedRankingsBlock();
71 explicit ScopedRankingsBlock(Rankings* rankings); 71 explicit ScopedRankingsBlock(Rankings* rankings);
72 ScopedRankingsBlock(Rankings* rankings, CacheRankingsBlock* node); 72 ScopedRankingsBlock(Rankings* rankings, CacheRankingsBlock* node);
73 73
74 ~ScopedRankingsBlock() { 74 ~ScopedRankingsBlock() { rankings_->FreeRankingsBlock(get()); }
75 rankings_->FreeRankingsBlock(get());
76 }
77 75
78 void set_rankings(Rankings* rankings) { 76 void set_rankings(Rankings* rankings) { rankings_ = rankings; }
79 rankings_ = rankings;
80 }
81 77
82 // scoped_ptr::reset will delete the object. 78 // scoped_ptr::reset will delete the object.
83 void reset(CacheRankingsBlock* p = NULL) { 79 void reset(CacheRankingsBlock* p = NULL) {
84 if (p != get()) 80 if (p != get())
85 rankings_->FreeRankingsBlock(get()); 81 rankings_->FreeRankingsBlock(get());
86 scoped_ptr<CacheRankingsBlock>::reset(p); 82 scoped_ptr<CacheRankingsBlock>::reset(p);
87 } 83 }
88 84
89 private: 85 private:
90 Rankings* rankings_; 86 Rankings* rankings_;
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 // Makes |rankings| suitable to live a long life. 156 // Makes |rankings| suitable to live a long life.
161 void ConvertToLongLived(CacheRankingsBlock* rankings); 157 void ConvertToLongLived(CacheRankingsBlock* rankings);
162 158
163 // Finishes a list modification after a crash. 159 // Finishes a list modification after a crash.
164 void CompleteTransaction(); 160 void CompleteTransaction();
165 void FinishInsert(CacheRankingsBlock* rankings); 161 void FinishInsert(CacheRankingsBlock* rankings);
166 void RevertRemove(CacheRankingsBlock* rankings); 162 void RevertRemove(CacheRankingsBlock* rankings);
167 163
168 // Returns false if node is not properly linked. This method may change the 164 // Returns false if node is not properly linked. This method may change the
169 // provided |list| to reflect the list where this node is actually stored. 165 // provided |list| to reflect the list where this node is actually stored.
170 bool CheckLinks(CacheRankingsBlock* node, CacheRankingsBlock* prev, 166 bool CheckLinks(CacheRankingsBlock* node,
171 CacheRankingsBlock* next, List* list); 167 CacheRankingsBlock* prev,
168 CacheRankingsBlock* next,
169 List* list);
172 170
173 // Checks the links between two consecutive nodes. 171 // Checks the links between two consecutive nodes.
174 bool CheckSingleLink(CacheRankingsBlock* prev, CacheRankingsBlock* next); 172 bool CheckSingleLink(CacheRankingsBlock* prev, CacheRankingsBlock* next);
175 173
176 // Peforms a simple check of the list, and returns the number of items or an 174 // Peforms a simple check of the list, and returns the number of items or an
177 // error code (negative value). 175 // error code (negative value).
178 int CheckList(List list); 176 int CheckList(List list);
179 177
180 // Walks a list in the desired direction until the nodes |end1| or |end2| are 178 // Walks a list in the desired direction until the nodes |end1| or |end2| are
181 // reached. Returns an error code (0 on success), the number of items verified 179 // reached. Returns an error code (0 on success), the number of items verified
182 // and the addresses of the last nodes visited. 180 // and the addresses of the last nodes visited.
183 int CheckListSection(List list, Addr end1, Addr end2, bool forward, 181 int CheckListSection(List list,
184 Addr* last, Addr* second_last, int* num_items); 182 Addr end1,
183 Addr end2,
184 bool forward,
185 Addr* last,
186 Addr* second_last,
187 int* num_items);
185 188
186 // Returns true if addr is the head or tail of any list. When there is a 189 // Returns true if addr is the head or tail of any list. When there is a
187 // match |list| will contain the list number for |addr|. 190 // match |list| will contain the list number for |addr|.
188 bool IsHead(CacheAddr addr, List* list) const; 191 bool IsHead(CacheAddr addr, List* list) const;
189 bool IsTail(CacheAddr addr, List* list) const; 192 bool IsTail(CacheAddr addr, List* list) const;
190 193
191 // Updates the iterators whenever node is being changed. 194 // Updates the iterators whenever node is being changed.
192 void UpdateIterators(CacheRankingsBlock* node); 195 void UpdateIterators(CacheRankingsBlock* node);
193 196
194 // Invalidates the iterators pointing to this node. 197 // Invalidates the iterators pointing to this node.
(...skipping 10 matching lines...) Expand all
205 BackendImpl* backend_; 208 BackendImpl* backend_;
206 LruData* control_data_; // Data related to the LRU lists. 209 LruData* control_data_; // Data related to the LRU lists.
207 IteratorList iterators_; 210 IteratorList iterators_;
208 211
209 DISALLOW_COPY_AND_ASSIGN(Rankings); 212 DISALLOW_COPY_AND_ASSIGN(Rankings);
210 }; 213 };
211 214
212 } // namespace disk_cache 215 } // namespace disk_cache
213 216
214 #endif // NET_DISK_CACHE_BLOCKFILE_RANKINGS_H_ 217 #endif // NET_DISK_CACHE_BLOCKFILE_RANKINGS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698