OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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_DISK_CACHE_SIMPLE_SIMPLE_INDEX_H_ | 5 #ifndef NET_DISK_CACHE_SIMPLE_SIMPLE_INDEX_H_ |
6 #define NET_DISK_CACHE_SIMPLE_SIMPLE_INDEX_H_ | 6 #define NET_DISK_CACHE_SIMPLE_SIMPLE_INDEX_H_ |
7 | 7 |
8 #include <list> | 8 #include <list> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 22 matching lines...) Expand all Loading... |
33 | 33 |
34 namespace disk_cache { | 34 namespace disk_cache { |
35 | 35 |
36 class SimpleIndexDelegate; | 36 class SimpleIndexDelegate; |
37 class SimpleIndexFile; | 37 class SimpleIndexFile; |
38 struct SimpleIndexLoadResult; | 38 struct SimpleIndexLoadResult; |
39 | 39 |
40 class NET_EXPORT_PRIVATE EntryMetadata { | 40 class NET_EXPORT_PRIVATE EntryMetadata { |
41 public: | 41 public: |
42 EntryMetadata(); | 42 EntryMetadata(); |
43 EntryMetadata(base::Time last_used_time, int entry_size); | 43 EntryMetadata(base::Time last_used_time, uint64 entry_size); |
44 | 44 |
45 base::Time GetLastUsedTime() const; | 45 base::Time GetLastUsedTime() const; |
46 void SetLastUsedTime(const base::Time& last_used_time); | 46 void SetLastUsedTime(const base::Time& last_used_time); |
47 | 47 |
48 int GetEntrySize() const { return entry_size_; } | 48 uint64 GetEntrySize() const; |
49 void SetEntrySize(int entry_size) { entry_size_ = entry_size; } | 49 void SetEntrySize(uint64 entry_size); |
50 | 50 |
51 // Serialize the data into the provided pickle. | 51 // Serialize the data into the provided pickle. |
52 void Serialize(Pickle* pickle) const; | 52 void Serialize(Pickle* pickle) const; |
53 bool Deserialize(PickleIterator* it); | 53 bool Deserialize(PickleIterator* it); |
54 | 54 |
55 static base::TimeDelta GetLowerEpsilonForTimeComparisons() { | 55 static base::TimeDelta GetLowerEpsilonForTimeComparisons() { |
56 return base::TimeDelta::FromSeconds(1); | 56 return base::TimeDelta::FromSeconds(1); |
57 } | 57 } |
58 static base::TimeDelta GetUpperEpsilonForTimeComparisons() { | 58 static base::TimeDelta GetUpperEpsilonForTimeComparisons() { |
59 return base::TimeDelta(); | 59 return base::TimeDelta(); |
(...skipping 19 matching lines...) Expand all Loading... |
79 | 79 |
80 SimpleIndex(const scoped_refptr<base::SingleThreadTaskRunner>& io_thread, | 80 SimpleIndex(const scoped_refptr<base::SingleThreadTaskRunner>& io_thread, |
81 SimpleIndexDelegate* delegate, | 81 SimpleIndexDelegate* delegate, |
82 net::CacheType cache_type, | 82 net::CacheType cache_type, |
83 scoped_ptr<SimpleIndexFile> simple_index_file); | 83 scoped_ptr<SimpleIndexFile> simple_index_file); |
84 | 84 |
85 virtual ~SimpleIndex(); | 85 virtual ~SimpleIndex(); |
86 | 86 |
87 void Initialize(base::Time cache_mtime); | 87 void Initialize(base::Time cache_mtime); |
88 | 88 |
89 bool SetMaxSize(int max_bytes); | 89 void SetMaxSize(uint64 max_bytes); |
90 int max_size() const { return max_size_; } | 90 uint64 max_size() const { return max_size_; } |
91 | 91 |
92 void Insert(uint64 entry_hash); | 92 void Insert(uint64 entry_hash); |
93 void Remove(uint64 entry_hash); | 93 void Remove(uint64 entry_hash); |
94 | 94 |
95 // Check whether the index has the entry given the hash of its key. | 95 // Check whether the index has the entry given the hash of its key. |
96 bool Has(uint64 entry_hash) const; | 96 bool Has(uint64 entry_hash) const; |
97 | 97 |
98 // Update the last used time of the entry with the given key and return true | 98 // Update the last used time of the entry with the given key and return true |
99 // iff the entry exist in the index. | 99 // iff the entry exist in the index. |
100 bool UseIfExists(uint64 entry_hash); | 100 bool UseIfExists(uint64 entry_hash); |
101 | 101 |
102 void WriteToDisk(); | 102 void WriteToDisk(); |
103 | 103 |
104 // Update the size (in bytes) of an entry, in the metadata stored in the | 104 // Update the size (in bytes) of an entry, in the metadata stored in the |
105 // index. This should be the total disk-file size including all streams of the | 105 // index. This should be the total disk-file size including all streams of the |
106 // entry. | 106 // entry. |
107 bool UpdateEntrySize(uint64 entry_hash, int entry_size); | 107 bool UpdateEntrySize(uint64 entry_hash, int64 entry_size); |
108 | 108 |
109 typedef base::hash_map<uint64, EntryMetadata> EntrySet; | 109 typedef base::hash_map<uint64, EntryMetadata> EntrySet; |
110 | 110 |
111 static void InsertInEntrySet(uint64 entry_hash, | 111 static void InsertInEntrySet(uint64 entry_hash, |
112 const EntryMetadata& entry_metadata, | 112 const EntryMetadata& entry_metadata, |
113 EntrySet* entry_set); | 113 EntrySet* entry_set); |
114 | 114 |
115 // Executes the |callback| when the index is ready. Allows multiple callbacks. | 115 // Executes the |callback| when the index is ready. Allows multiple callbacks. |
116 int ExecuteWhenReady(const net::CompletionCallback& callback); | 116 int ExecuteWhenReady(const net::CompletionCallback& callback); |
117 | 117 |
(...skipping 18 matching lines...) Expand all Loading... |
136 FRIEND_TEST_ALL_PREFIXES(SimpleIndexTest, IndexSizeCorrectOnMerge); | 136 FRIEND_TEST_ALL_PREFIXES(SimpleIndexTest, IndexSizeCorrectOnMerge); |
137 FRIEND_TEST_ALL_PREFIXES(SimpleIndexTest, DiskWriteQueued); | 137 FRIEND_TEST_ALL_PREFIXES(SimpleIndexTest, DiskWriteQueued); |
138 FRIEND_TEST_ALL_PREFIXES(SimpleIndexTest, DiskWriteExecuted); | 138 FRIEND_TEST_ALL_PREFIXES(SimpleIndexTest, DiskWriteExecuted); |
139 FRIEND_TEST_ALL_PREFIXES(SimpleIndexTest, DiskWritePostponed); | 139 FRIEND_TEST_ALL_PREFIXES(SimpleIndexTest, DiskWritePostponed); |
140 | 140 |
141 void StartEvictionIfNeeded(); | 141 void StartEvictionIfNeeded(); |
142 void EvictionDone(int result); | 142 void EvictionDone(int result); |
143 | 143 |
144 void PostponeWritingToDisk(); | 144 void PostponeWritingToDisk(); |
145 | 145 |
146 void UpdateEntryIteratorSize(EntrySet::iterator* it, int entry_size); | 146 void UpdateEntryIteratorSize(EntrySet::iterator* it, int64 entry_size); |
147 | 147 |
148 // Must run on IO Thread. | 148 // Must run on IO Thread. |
149 void MergeInitializingSet(scoped_ptr<SimpleIndexLoadResult> load_result); | 149 void MergeInitializingSet(scoped_ptr<SimpleIndexLoadResult> load_result); |
150 | 150 |
151 #if defined(OS_ANDROID) | 151 #if defined(OS_ANDROID) |
152 void OnApplicationStateChange(base::android::ApplicationState state); | 152 void OnApplicationStateChange(base::android::ApplicationState state); |
153 | 153 |
154 scoped_ptr<base::android::ApplicationStatusListener> app_status_listener_; | 154 scoped_ptr<base::android::ApplicationStatusListener> app_status_listener_; |
155 #endif | 155 #endif |
156 | 156 |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
193 | 193 |
194 // Set to true when the app is on the background. When the app is in the | 194 // Set to true when the app is on the background. When the app is in the |
195 // background we can write the index much more frequently, to insure fresh | 195 // background we can write the index much more frequently, to insure fresh |
196 // index on next startup. | 196 // index on next startup. |
197 bool app_on_background_; | 197 bool app_on_background_; |
198 }; | 198 }; |
199 | 199 |
200 } // namespace disk_cache | 200 } // namespace disk_cache |
201 | 201 |
202 #endif // NET_DISK_CACHE_SIMPLE_SIMPLE_INDEX_H_ | 202 #endif // NET_DISK_CACHE_SIMPLE_SIMPLE_INDEX_H_ |
OLD | NEW |