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

Unified Diff: net/disk_cache/simple/simple_index.h

Issue 14230009: Write the Simple Cache Index file to disk once in a while (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase again Created 7 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | net/disk_cache/simple/simple_index.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/disk_cache/simple/simple_index.h
diff --git a/net/disk_cache/simple/simple_index.h b/net/disk_cache/simple/simple_index.h
index 59145cded1593f40e2e0640891fd99d8100a6036..0dd86c4530346f70fb862831ed44ea2ead415d8e 100644
--- a/net/disk_cache/simple/simple_index.h
+++ b/net/disk_cache/simple/simple_index.h
@@ -17,6 +17,7 @@
#include "base/memory/weak_ptr.h"
#include "base/threading/thread_checker.h"
#include "base/time.h"
+#include "base/timer.h"
#include "net/base/net_export.h"
class Pickle;
@@ -104,7 +105,10 @@ class NET_EXPORT_PRIVATE SimpleIndex
EntrySet* entry_set);
private:
- typedef base::Callback<void(scoped_ptr<EntrySet>)> IndexCompletionCallback;
+ typedef base::Callback<void(scoped_ptr<EntrySet>, bool force_index_flush)>
+ IndexCompletionCallback;
+
+ void PostponeWritingToDisk();
static void LoadFromDisk(
const base::FilePath& index_filename,
@@ -119,7 +123,8 @@ class NET_EXPORT_PRIVATE SimpleIndex
scoped_ptr<Pickle> pickle);
// Must run on IO Thread.
- void MergeInitializingSet(scoped_ptr<EntrySet> index_file_entries);
+ void MergeInitializingSet(scoped_ptr<EntrySet> index_file_entries,
+ bool force_index_flush);
EntrySet entries_set_;
uint64 cache_size_; // Total cache storage size in bytes.
@@ -137,6 +142,12 @@ class NET_EXPORT_PRIVATE SimpleIndex
// All nonstatic SimpleEntryImpl methods should always be called on the IO
// thread, in all cases. |io_thread_checker_| documents and enforces this.
base::ThreadChecker io_thread_checker_;
+
+ // Timestamp of the last time we wrote the index to disk.
+ // PostponeWritingToDisk() may give up postponing and allow the write if it
+ // has been a while since last time we wrote.
+ base::Time last_write_to_disk_;
+ base::OneShotTimer<SimpleIndex> write_to_disk_timer_;
};
} // namespace disk_cache
« no previous file with comments | « no previous file | net/disk_cache/simple/simple_index.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698