OLD | NEW |
1 // Copyright (c) 2006-2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2010 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_BACKEND_IMPL_H_ | 7 #ifndef NET_DISK_CACHE_BACKEND_IMPL_H_ |
8 #define NET_DISK_CACHE_BACKEND_IMPL_H_ | 8 #define NET_DISK_CACHE_BACKEND_IMPL_H_ |
9 #pragma once | 9 #pragma once |
10 | 10 |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 // Sends a dummy operation through the operation queue, for unit tests. | 233 // Sends a dummy operation through the operation queue, for unit tests. |
234 int FlushQueueForTest(CompletionCallback* callback); | 234 int FlushQueueForTest(CompletionCallback* callback); |
235 | 235 |
236 // Runs the provided task on the cache thread. The task will be automatically | 236 // Runs the provided task on the cache thread. The task will be automatically |
237 // deleted after it runs. | 237 // deleted after it runs. |
238 int RunTaskForTest(Task* task, CompletionCallback* callback); | 238 int RunTaskForTest(Task* task, CompletionCallback* callback); |
239 | 239 |
240 // Starts or stops throttling requests. | 240 // Starts or stops throttling requests. |
241 void ThrottleRequestsForTest(bool throttle); | 241 void ThrottleRequestsForTest(bool throttle); |
242 | 242 |
| 243 // Trims an entry (all if |empty| is true) from the list of deleted |
| 244 // entries. This method should be called directly on the cache thread. |
| 245 void TrimForTest(bool empty); |
| 246 |
| 247 // Trims an entry (all if |empty| is true) from the list of deleted |
| 248 // entries. This method should be called directly on the cache thread. |
| 249 void TrimDeletedListForTest(bool empty); |
| 250 |
243 // Peforms a simple self-check, and returns the number of dirty items | 251 // Peforms a simple self-check, and returns the number of dirty items |
244 // or an error code (negative value). | 252 // or an error code (negative value). |
245 int SelfCheck(); | 253 int SelfCheck(); |
246 | 254 |
247 // Backend interface. | 255 // Backend interface. |
248 virtual int32 GetEntryCount() const; | 256 virtual int32 GetEntryCount() const; |
249 virtual int OpenEntry(const std::string& key, Entry** entry, | 257 virtual int OpenEntry(const std::string& key, Entry** entry, |
250 CompletionCallback* callback); | 258 CompletionCallback* callback); |
251 virtual int CreateEntry(const std::string& key, Entry** entry, | 259 virtual int CreateEntry(const std::string& key, Entry** entry, |
252 CompletionCallback* callback); | 260 CompletionCallback* callback); |
(...skipping 20 matching lines...) Expand all Loading... |
273 // Deletes the cache and starts again. | 281 // Deletes the cache and starts again. |
274 void RestartCache(bool failure); | 282 void RestartCache(bool failure); |
275 void PrepareForRestart(); | 283 void PrepareForRestart(); |
276 | 284 |
277 // Creates a new entry object and checks to see if it is dirty. Returns zero | 285 // Creates a new entry object and checks to see if it is dirty. Returns zero |
278 // on success, or a disk_cache error on failure. | 286 // on success, or a disk_cache error on failure. |
279 int NewEntry(Addr address, EntryImpl** entry, bool* dirty); | 287 int NewEntry(Addr address, EntryImpl** entry, bool* dirty); |
280 | 288 |
281 // Returns a given entry from the cache. The entry to match is determined by | 289 // Returns a given entry from the cache. The entry to match is determined by |
282 // key and hash, and the returned entry may be the matched one or it's parent | 290 // key and hash, and the returned entry may be the matched one or it's parent |
283 // on the list of entries with the same hash (or bucket). | 291 // on the list of entries with the same hash (or bucket). To look for a parent |
284 EntryImpl* MatchEntry(const std::string& key, uint32 hash, bool find_parent); | 292 // of a given entry, |entry_addr| should be grabbed from that entry, so that |
| 293 // if it doesn't match the entry on the index, we know that it was replaced |
| 294 // with a new entry; in this case |*match_error| will be set to true and the |
| 295 // return value will be NULL. |
| 296 EntryImpl* MatchEntry(const std::string& key, uint32 hash, bool find_parent, |
| 297 Addr entry_addr, bool* match_error); |
285 | 298 |
286 // Opens the next or previous entry on a cache iteration. | 299 // Opens the next or previous entry on a cache iteration. |
287 EntryImpl* OpenFollowingEntry(bool forward, void** iter); | 300 EntryImpl* OpenFollowingEntry(bool forward, void** iter); |
288 | 301 |
289 // Opens the next or previous entry on a single list. If successfull, | 302 // Opens the next or previous entry on a single list. If successfull, |
290 // |from_entry| will be updated to point to the new entry, otherwise it will | 303 // |from_entry| will be updated to point to the new entry, otherwise it will |
291 // be set to NULL; in other words, it is used as an explicit iterator. | 304 // be set to NULL; in other words, it is used as an explicit iterator. |
292 bool OpenFollowingEntryFromList(bool forward, Rankings::List list, | 305 bool OpenFollowingEntryFromList(bool forward, Rankings::List list, |
293 CacheRankingsBlock** from_entry, | 306 CacheRankingsBlock** from_entry, |
294 EntryImpl** next_entry); | 307 EntryImpl** next_entry); |
295 | 308 |
296 // Returns the entry that is pointed by |next|. If we are trimming the cache, | 309 // Returns the entry that is pointed by |next|. |
297 // |to_evict| should be true so that we don't perform extra disk writes. | 310 EntryImpl* GetEnumeratedEntry(CacheRankingsBlock* next); |
298 EntryImpl* GetEnumeratedEntry(CacheRankingsBlock* next, bool to_evict); | |
299 | 311 |
300 // Re-opens an entry that was previously deleted. | 312 // Re-opens an entry that was previously deleted. |
301 EntryImpl* ResurrectEntry(EntryImpl* deleted_entry); | 313 EntryImpl* ResurrectEntry(EntryImpl* deleted_entry); |
302 | 314 |
303 void DestroyInvalidEntry(EntryImpl* entry); | 315 void DestroyInvalidEntry(EntryImpl* entry); |
304 void DestroyInvalidEntryFromEnumeration(EntryImpl* entry); | 316 void DestroyInvalidEntryFromEnumeration(EntryImpl* entry); |
305 | 317 |
306 // Handles the used storage count. | 318 // Handles the used storage count. |
307 void AddStorageSize(int32 bytes); | 319 void AddStorageSize(int32 bytes); |
308 void SubstractStorageSize(int32 bytes); | 320 void SubstractStorageSize(int32 bytes); |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
374 | 386 |
375 DISALLOW_COPY_AND_ASSIGN(BackendImpl); | 387 DISALLOW_COPY_AND_ASSIGN(BackendImpl); |
376 }; | 388 }; |
377 | 389 |
378 // Returns the prefered max cache size given the available disk space. | 390 // Returns the prefered max cache size given the available disk space. |
379 int PreferedCacheSize(int64 available); | 391 int PreferedCacheSize(int64 available); |
380 | 392 |
381 } // namespace disk_cache | 393 } // namespace disk_cache |
382 | 394 |
383 #endif // NET_DISK_CACHE_BACKEND_IMPL_H_ | 395 #endif // NET_DISK_CACHE_BACKEND_IMPL_H_ |
OLD | NEW |