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_BACKEND_IMPL_H_ | 5 #ifndef NET_DISK_CACHE_SIMPLE_SIMPLE_BACKEND_IMPL_H_ |
6 #define NET_DISK_CACHE_SIMPLE_SIMPLE_BACKEND_IMPL_H_ | 6 #define NET_DISK_CACHE_SIMPLE_SIMPLE_BACKEND_IMPL_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <utility> | 9 #include <utility> |
10 #include <vector> | 10 #include <vector> |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 base::TaskRunner* worker_pool() { return worker_pool_.get(); } | 59 base::TaskRunner* worker_pool() { return worker_pool_.get(); } |
60 | 60 |
61 int Init(const CompletionCallback& completion_callback); | 61 int Init(const CompletionCallback& completion_callback); |
62 | 62 |
63 // Sets the maximum size for the total amount of data stored by this instance. | 63 // Sets the maximum size for the total amount of data stored by this instance. |
64 bool SetMaxSize(int max_bytes); | 64 bool SetMaxSize(int max_bytes); |
65 | 65 |
66 // Returns the maximum file size permitted in this backend. | 66 // Returns the maximum file size permitted in this backend. |
67 int GetMaxFileSize() const; | 67 int GetMaxFileSize() const; |
68 | 68 |
69 // Removes |entry| from the |active_entries_| set, forcing future Open/Create | |
70 // operations to construct a new object. | |
71 void OnDeactivated(const SimpleEntryImpl* entry); | |
72 | |
73 // Flush our SequencedWorkerPool. | 69 // Flush our SequencedWorkerPool. |
74 static void FlushWorkerPoolForTesting(); | 70 static void FlushWorkerPoolForTesting(); |
75 | 71 |
76 // The entry for |entry_hash| is being doomed; the backend will not attempt | 72 // The entry for |entry_hash| is being doomed; the backend will not attempt |
77 // run new operations for this |entry_hash| until the Doom is completed. | 73 // run new operations for this |entry_hash| until the Doom is completed. |
78 void OnDoomStart(uint64 entry_hash); | 74 void OnDoomStart(uint64 entry_hash); |
79 | 75 |
80 // The entry for |entry_hash| has been successfully doomed, we can now allow | 76 // The entry for |entry_hash| has been successfully doomed, we can now allow |
81 // operations on this entry, and we can run any operations enqueued while the | 77 // operations on this entry, and we can run any operations enqueued while the |
82 // doom completed. | 78 // doom completed. |
(...skipping 19 matching lines...) Expand all Loading... |
102 virtual int DoomEntriesSince(base::Time initial_time, | 98 virtual int DoomEntriesSince(base::Time initial_time, |
103 const CompletionCallback& callback) OVERRIDE; | 99 const CompletionCallback& callback) OVERRIDE; |
104 virtual int OpenNextEntry(void** iter, Entry** next_entry, | 100 virtual int OpenNextEntry(void** iter, Entry** next_entry, |
105 const CompletionCallback& callback) OVERRIDE; | 101 const CompletionCallback& callback) OVERRIDE; |
106 virtual void EndEnumeration(void** iter) OVERRIDE; | 102 virtual void EndEnumeration(void** iter) OVERRIDE; |
107 virtual void GetStats( | 103 virtual void GetStats( |
108 std::vector<std::pair<std::string, std::string> >* stats) OVERRIDE; | 104 std::vector<std::pair<std::string, std::string> >* stats) OVERRIDE; |
109 virtual void OnExternalCacheHit(const std::string& key) OVERRIDE; | 105 virtual void OnExternalCacheHit(const std::string& key) OVERRIDE; |
110 | 106 |
111 private: | 107 private: |
112 typedef base::hash_map<uint64, base::WeakPtr<SimpleEntryImpl> > EntryMap; | 108 typedef base::hash_map<uint64, SimpleEntryImpl*> EntryMap; |
113 | 109 |
114 typedef base::Callback<void(base::Time mtime, uint64 max_size, int result)> | 110 typedef base::Callback<void(base::Time mtime, uint64 max_size, int result)> |
115 InitializeIndexCallback; | 111 InitializeIndexCallback; |
116 | 112 |
| 113 class ActiveEntryProxy; |
| 114 friend class ActiveEntryProxy; |
| 115 |
117 // Return value of InitCacheStructureOnDisk(). | 116 // Return value of InitCacheStructureOnDisk(). |
118 struct DiskStatResult { | 117 struct DiskStatResult { |
119 base::Time cache_dir_mtime; | 118 base::Time cache_dir_mtime; |
120 uint64 max_size; | 119 uint64 max_size; |
121 bool detected_magic_number_mismatch; | 120 bool detected_magic_number_mismatch; |
122 int net_error; | 121 int net_error; |
123 }; | 122 }; |
124 | 123 |
125 void InitializeIndex(const CompletionCallback& callback, | 124 void InitializeIndex(const CompletionCallback& callback, |
126 const DiskStatResult& result); | 125 const DiskStatResult& result); |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
212 // is complete. The base::Closure map target is used to store deferred | 211 // is complete. The base::Closure map target is used to store deferred |
213 // operations to be run at the completion of the Doom. | 212 // operations to be run at the completion of the Doom. |
214 base::hash_map<uint64, std::vector<base::Closure> > entries_pending_doom_; | 213 base::hash_map<uint64, std::vector<base::Closure> > entries_pending_doom_; |
215 | 214 |
216 net::NetLog* const net_log_; | 215 net::NetLog* const net_log_; |
217 }; | 216 }; |
218 | 217 |
219 } // namespace disk_cache | 218 } // namespace disk_cache |
220 | 219 |
221 #endif // NET_DISK_CACHE_SIMPLE_SIMPLE_BACKEND_IMPL_H_ | 220 #endif // NET_DISK_CACHE_SIMPLE_SIMPLE_BACKEND_IMPL_H_ |
OLD | NEW |