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

Side by Side Diff: net/disk_cache/blockfile/backend_impl_v3.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 of the cache. 5 // See net/disk_cache/disk_cache.h for the public interface of the cache.
6 6
7 #ifndef NET_DISK_CACHE_BLOCKFILE_BACKEND_IMPL_V3_H_ 7 #ifndef NET_DISK_CACHE_BLOCKFILE_BACKEND_IMPL_V3_H_
8 #define NET_DISK_CACHE_BLOCKFILE_BACKEND_IMPL_V3_H_ 8 #define NET_DISK_CACHE_BLOCKFILE_BACKEND_IMPL_V3_H_
9 9
10 #include "base/containers/hash_tables.h" 10 #include "base/containers/hash_tables.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 44
45 BackendImplV3(const base::FilePath& path, 45 BackendImplV3(const base::FilePath& path,
46 base::MessageLoopProxy* cache_thread, 46 base::MessageLoopProxy* cache_thread,
47 net::NetLog* net_log); 47 net::NetLog* net_log);
48 virtual ~BackendImplV3(); 48 virtual ~BackendImplV3();
49 49
50 // Performs general initialization for this current instance of the cache. 50 // Performs general initialization for this current instance of the cache.
51 int Init(const CompletionCallback& callback); 51 int Init(const CompletionCallback& callback);
52 52
53 // Same behavior as OpenNextEntry but walks the list from back to front. 53 // Same behavior as OpenNextEntry but walks the list from back to front.
54 int OpenPrevEntry(void** iter, Entry** prev_entry, 54 int OpenPrevEntry(void** iter,
55 Entry** prev_entry,
55 const CompletionCallback& callback); 56 const CompletionCallback& callback);
56 57
57 // Sets the maximum size for the total amount of data stored by this instance. 58 // Sets the maximum size for the total amount of data stored by this instance.
58 bool SetMaxSize(int max_bytes); 59 bool SetMaxSize(int max_bytes);
59 60
60 // Sets the cache type for this backend. 61 // Sets the cache type for this backend.
61 void SetType(net::CacheType type); 62 void SetType(net::CacheType type);
62 63
63 // Creates a new storage block of size block_count. 64 // Creates a new storage block of size block_count.
64 bool CreateBlock(FileType block_type, int block_count, 65 bool CreateBlock(FileType block_type, int block_count, Addr* block_address);
65 Addr* block_address);
66 66
67 // Updates the ranking information for an entry. 67 // Updates the ranking information for an entry.
68 void UpdateRank(EntryImplV3* entry, bool modified); 68 void UpdateRank(EntryImplV3* entry, bool modified);
69 69
70 // Permanently deletes an entry, but still keeps track of it. 70 // Permanently deletes an entry, but still keeps track of it.
71 void InternalDoomEntry(EntryImplV3* entry); 71 void InternalDoomEntry(EntryImplV3* entry);
72 72
73 // This method must be called when an entry is released for the last time, so 73 // This method must be called when an entry is released for the last time, so
74 // the entry should not be used anymore. |address| is the cache address of the 74 // the entry should not be used anymore. |address| is the cache address of the
75 // entry. 75 // entry.
(...skipping 20 matching lines...) Expand all
96 // Logs requests that are denied due to being too big. 96 // Logs requests that are denied due to being too big.
97 void TooMuchStorageRequested(int32 size); 97 void TooMuchStorageRequested(int32 size);
98 98
99 // Returns true if a temporary buffer is allowed to be extended. 99 // Returns true if a temporary buffer is allowed to be extended.
100 bool IsAllocAllowed(int current_size, int new_size); 100 bool IsAllocAllowed(int current_size, int new_size);
101 101
102 // Tracks the release of |size| bytes by an entry buffer. 102 // Tracks the release of |size| bytes by an entry buffer.
103 void BufferDeleted(int size); 103 void BufferDeleted(int size);
104 104
105 // Only intended for testing the two previous methods. 105 // Only intended for testing the two previous methods.
106 int GetTotalBuffersSize() const { 106 int GetTotalBuffersSize() const { return buffer_bytes_; }
107 return buffer_bytes_;
108 }
109 107
110 // Returns true if this instance seems to be under heavy load. 108 // Returns true if this instance seems to be under heavy load.
111 bool IsLoaded() const; 109 bool IsLoaded() const;
112 110
113 // Returns the full histogram name, for the given base |name| and the current 111 // Returns the full histogram name, for the given base |name| and the current
114 // cache type. The name will be "DiskCache3.name_type". 112 // cache type. The name will be "DiskCache3.name_type".
115 std::string HistogramName(const char* name) const; 113 std::string HistogramName(const char* name) const;
116 114
117 net::CacheType cache_type() const { 115 net::CacheType cache_type() const { return cache_type_; }
118 return cache_type_;
119 }
120 116
121 bool read_only() const { 117 bool read_only() const { return read_only_; }
122 return read_only_;
123 }
124 118
125 // Returns a weak pointer to this object. 119 // Returns a weak pointer to this object.
126 base::WeakPtr<BackendImplV3> GetWeakPtr(); 120 base::WeakPtr<BackendImplV3> GetWeakPtr();
127 121
128 // Returns true if we should send histograms for this user again. The caller 122 // Returns true if we should send histograms for this user again. The caller
129 // must call this function only once per run (because it returns always the 123 // must call this function only once per run (because it returns always the
130 // same thing on a given run). 124 // same thing on a given run).
131 bool ShouldReportAgain(); 125 bool ShouldReportAgain();
132 126
133 // Reports some data when we filled up the cache. 127 // Reports some data when we filled up the cache.
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 // entries. This method should be called directly on the cache thread. 160 // entries. This method should be called directly on the cache thread.
167 void TrimDeletedListForTest(bool empty); 161 void TrimDeletedListForTest(bool empty);
168 162
169 // Performs a simple self-check, and returns the number of dirty items 163 // Performs a simple self-check, and returns the number of dirty items
170 // or an error code (negative value). 164 // or an error code (negative value).
171 int SelfCheck(); 165 int SelfCheck();
172 166
173 // Backend implementation. 167 // Backend implementation.
174 virtual net::CacheType GetCacheType() const OVERRIDE; 168 virtual net::CacheType GetCacheType() const OVERRIDE;
175 virtual int32 GetEntryCount() const OVERRIDE; 169 virtual int32 GetEntryCount() const OVERRIDE;
176 virtual int OpenEntry(const std::string& key, Entry** entry, 170 virtual int OpenEntry(const std::string& key,
171 Entry** entry,
177 const CompletionCallback& callback) OVERRIDE; 172 const CompletionCallback& callback) OVERRIDE;
178 virtual int CreateEntry(const std::string& key, Entry** entry, 173 virtual int CreateEntry(const std::string& key,
174 Entry** entry,
179 const CompletionCallback& callback) OVERRIDE; 175 const CompletionCallback& callback) OVERRIDE;
180 virtual int DoomEntry(const std::string& key, 176 virtual int DoomEntry(const std::string& key,
181 const CompletionCallback& callback) OVERRIDE; 177 const CompletionCallback& callback) OVERRIDE;
182 virtual int DoomAllEntries(const CompletionCallback& callback) OVERRIDE; 178 virtual int DoomAllEntries(const CompletionCallback& callback) OVERRIDE;
183 virtual int DoomEntriesBetween(base::Time initial_time, 179 virtual int DoomEntriesBetween(base::Time initial_time,
184 base::Time end_time, 180 base::Time end_time,
185 const CompletionCallback& callback) OVERRIDE; 181 const CompletionCallback& callback) OVERRIDE;
186 virtual int DoomEntriesSince(base::Time initial_time, 182 virtual int DoomEntriesSince(base::Time initial_time,
187 const CompletionCallback& callback) OVERRIDE; 183 const CompletionCallback& callback) OVERRIDE;
188 virtual int OpenNextEntry(void** iter, Entry** next_entry, 184 virtual int OpenNextEntry(void** iter,
185 Entry** next_entry,
189 const CompletionCallback& callback) OVERRIDE; 186 const CompletionCallback& callback) OVERRIDE;
190 virtual void EndEnumeration(void** iter) OVERRIDE; 187 virtual void EndEnumeration(void** iter) OVERRIDE;
191 virtual void GetStats(StatsItems* stats) OVERRIDE; 188 virtual void GetStats(StatsItems* stats) OVERRIDE;
192 virtual void OnExternalCacheHit(const std::string& key) OVERRIDE; 189 virtual void OnExternalCacheHit(const std::string& key) OVERRIDE;
193 190
194 private: 191 private:
195 friend class EvictionV3; 192 friend class EvictionV3;
196 typedef base::hash_map<CacheAddr, EntryImplV3*> EntriesMap; 193 typedef base::hash_map<CacheAddr, EntryImplV3*> EntriesMap;
197 class Worker; 194 class Worker;
198 195
199 void AdjustMaxCacheSize(); 196 void AdjustMaxCacheSize();
200 bool InitStats(void* stats_data); 197 bool InitStats(void* stats_data);
201 void StoreStats(); 198 void StoreStats();
202 199
203 // Deletes the cache and starts again. 200 // Deletes the cache and starts again.
204 void RestartCache(bool failure); 201 void RestartCache(bool failure);
205 void PrepareForRestart(); 202 void PrepareForRestart();
206 203
207 // Performs final cleanup. 204 // Performs final cleanup.
208 void CleanupCache(); 205 void CleanupCache();
209 206
210 // Creates a new entry object. Returns zero on success, or a disk_cache error 207 // Creates a new entry object. Returns zero on success, or a disk_cache error
211 // on failure. 208 // on failure.
212 int NewEntry(Addr address, EntryImplV3** entry); 209 int NewEntry(Addr address, EntryImplV3** entry);
213 210
214 // Opens the next or previous entry on a cache iteration. 211 // Opens the next or previous entry on a cache iteration.
215 int OpenFollowingEntry(bool forward, void** iter, Entry** next_entry, 212 int OpenFollowingEntry(bool forward,
213 void** iter,
214 Entry** next_entry,
216 const CompletionCallback& callback); 215 const CompletionCallback& callback);
217 216
218 // Handles the used storage count. 217 // Handles the used storage count.
219 void AddStorageSize(int32 bytes); 218 void AddStorageSize(int32 bytes);
220 void SubstractStorageSize(int32 bytes); 219 void SubstractStorageSize(int32 bytes);
221 220
222 // Update the number of referenced cache entries. 221 // Update the number of referenced cache entries.
223 void IncreaseNumRefs(); 222 void IncreaseNumRefs();
224 void DecreaseNumRefs(); 223 void DecreaseNumRefs();
225 void IncreaseNumEntries(); 224 void IncreaseNumEntries();
(...skipping 16 matching lines...) Expand all
242 241
243 // Part of the self test. Returns false if the entry is corrupt. 242 // Part of the self test. Returns false if the entry is corrupt.
244 bool CheckEntry(EntryImplV3* cache_entry); 243 bool CheckEntry(EntryImplV3* cache_entry);
245 244
246 // Returns the maximum total memory for the memory buffers. 245 // Returns the maximum total memory for the memory buffers.
247 int MaxBuffersSize(); 246 int MaxBuffersSize();
248 247
249 IndexTable index_; 248 IndexTable index_;
250 base::FilePath path_; // Path to the folder used as backing storage. 249 base::FilePath path_; // Path to the folder used as backing storage.
251 BlockBitmaps block_files_; 250 BlockBitmaps block_files_;
252 int32 max_size_; // Maximum data size for this instance. 251 int32 max_size_; // Maximum data size for this instance.
253 EvictionV3 eviction_; // Handler of the eviction algorithm. 252 EvictionV3 eviction_; // Handler of the eviction algorithm.
254 EntriesMap open_entries_; 253 EntriesMap open_entries_;
255 int num_refs_; // Number of referenced cache entries. 254 int num_refs_; // Number of referenced cache entries.
256 int max_refs_; // Max number of referenced cache entries. 255 int max_refs_; // Max number of referenced cache entries.
257 int entry_count_; // Number of entries accessed lately. 256 int entry_count_; // Number of entries accessed lately.
258 int byte_count_; // Number of bytes read/written lately. 257 int byte_count_; // Number of bytes read/written lately.
259 int buffer_bytes_; // Total size of the temporary entries' buffers. 258 int buffer_bytes_; // Total size of the temporary entries' buffers.
260 int up_ticks_; // The number of timer ticks received (OnTimerTick). 259 int up_ticks_; // The number of timer ticks received (OnTimerTick).
261 net::CacheType cache_type_; 260 net::CacheType cache_type_;
262 int uma_report_; // Controls transmission of UMA data. 261 int uma_report_; // Controls transmission of UMA data.
263 uint32 user_flags_; // Flags set by the user. 262 uint32 user_flags_; // Flags set by the user.
264 bool init_; // controls the initialization of the system. 263 bool init_; // controls the initialization of the system.
265 bool restarted_; 264 bool restarted_;
266 bool read_only_; // Prevents updates of the rankings data (used by tools). 265 bool read_only_; // Prevents updates of the rankings data (used by tools).
267 bool disabled_; 266 bool disabled_;
268 bool lru_eviction_; // What eviction algorithm should be used. 267 bool lru_eviction_; // What eviction algorithm should be used.
269 bool first_timer_; // True if the timer has not been called. 268 bool first_timer_; // True if the timer has not been called.
270 bool user_load_; // True if we see a high load coming from the caller. 269 bool user_load_; // True if we see a high load coming from the caller.
271 270
272 net::NetLog* net_log_; 271 net::NetLog* net_log_;
273 272
274 Stats stats_; // Usage statistics. 273 Stats stats_; // Usage statistics.
275 scoped_ptr<base::RepeatingTimer<BackendImplV3> > timer_; // Usage timer. 274 scoped_ptr<base::RepeatingTimer<BackendImplV3> > timer_; // Usage timer.
276 scoped_refptr<TraceObject> trace_object_; // Initializes internal tracing. 275 scoped_refptr<TraceObject> trace_object_; // Initializes internal tracing.
277 base::WeakPtrFactory<BackendImplV3> ptr_factory_; 276 base::WeakPtrFactory<BackendImplV3> ptr_factory_;
278 277
279 DISALLOW_COPY_AND_ASSIGN(BackendImplV3); 278 DISALLOW_COPY_AND_ASSIGN(BackendImplV3);
280 }; 279 };
281 280
282 } // namespace disk_cache 281 } // namespace disk_cache
283 282
284 #endif // NET_DISK_CACHE_BLOCKFILE_BACKEND_IMPL_V3_H_ 283 #endif // NET_DISK_CACHE_BLOCKFILE_BACKEND_IMPL_V3_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698