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_ENTRY_IMPL_H_ | 5 #ifndef NET_DISK_CACHE_SIMPLE_SIMPLE_ENTRY_IMPL_H_ |
6 #define NET_DISK_CACHE_SIMPLE_SIMPLE_ENTRY_IMPL_H_ | 6 #define NET_DISK_CACHE_SIMPLE_SIMPLE_ENTRY_IMPL_H_ |
7 | 7 |
8 #include <queue> | 8 #include <queue> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
172 int buf_len, | 172 int buf_len, |
173 const CompletionCallback& callback); | 173 const CompletionCallback& callback); |
174 | 174 |
175 void WriteDataInternal(int index, | 175 void WriteDataInternal(int index, |
176 int offset, | 176 int offset, |
177 net::IOBuffer* buf, | 177 net::IOBuffer* buf, |
178 int buf_len, | 178 int buf_len, |
179 const CompletionCallback& callback, | 179 const CompletionCallback& callback, |
180 bool truncate); | 180 bool truncate); |
181 | 181 |
| 182 void DoomEntryInternal(const CompletionCallback& callback); |
| 183 |
182 // Called after a SimpleSynchronousEntry has completed CreateEntry() or | 184 // Called after a SimpleSynchronousEntry has completed CreateEntry() or |
183 // OpenEntry(). If |in_sync_entry| is non-NULL, creation is successful and we | 185 // OpenEntry(). If |in_sync_entry| is non-NULL, creation is successful and we |
184 // can return |this| SimpleEntryImpl to |*out_entry|. Runs | 186 // can return |this| SimpleEntryImpl to |*out_entry|. Runs |
185 // |completion_callback|. | 187 // |completion_callback|. |
186 void CreationOperationComplete( | 188 void CreationOperationComplete( |
187 const CompletionCallback& completion_callback, | 189 const CompletionCallback& completion_callback, |
188 const base::TimeTicks& start_time, | 190 const base::TimeTicks& start_time, |
189 scoped_ptr<SimpleEntryCreationResults> in_results, | 191 scoped_ptr<SimpleEntryCreationResults> in_results, |
190 Entry** out_entry, | 192 Entry** out_entry, |
191 net::NetLog::EventType end_event_type); | 193 net::NetLog::EventType end_event_type); |
(...skipping 17 matching lines...) Expand all Loading... |
209 scoped_ptr<uint32> read_crc32, | 211 scoped_ptr<uint32> read_crc32, |
210 scoped_ptr<base::Time> last_used, | 212 scoped_ptr<base::Time> last_used, |
211 scoped_ptr<int> result); | 213 scoped_ptr<int> result); |
212 | 214 |
213 // Called after an asynchronous write completes. | 215 // Called after an asynchronous write completes. |
214 void WriteOperationComplete(int stream_index, | 216 void WriteOperationComplete(int stream_index, |
215 const CompletionCallback& completion_callback, | 217 const CompletionCallback& completion_callback, |
216 scoped_ptr<SimpleEntryStat> entry_stat, | 218 scoped_ptr<SimpleEntryStat> entry_stat, |
217 scoped_ptr<int> result); | 219 scoped_ptr<int> result); |
218 | 220 |
| 221 // Called after an asynchronous doom completes. |
| 222 void DoomOperationComplete(const CompletionCallback& callback, |
| 223 State state_to_restore, |
| 224 int result); |
| 225 |
219 // Called after validating the checksums on an entry. Passes through the | 226 // Called after validating the checksums on an entry. Passes through the |
220 // original result if successful, propogates the error if the checksum does | 227 // original result if successful, propogates the error if the checksum does |
221 // not validate. | 228 // not validate. |
222 void ChecksumOperationComplete( | 229 void ChecksumOperationComplete( |
223 int stream_index, | 230 int stream_index, |
224 int orig_result, | 231 int orig_result, |
225 const CompletionCallback& completion_callback, | 232 const CompletionCallback& completion_callback, |
226 scoped_ptr<int> result); | 233 scoped_ptr<int> result); |
227 | 234 |
228 // Called after completion of asynchronous IO and receiving file metadata for | 235 // Called after completion of asynchronous IO and receiving file metadata for |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
270 uint32 crc32s_[kSimpleEntryFileCount]; | 277 uint32 crc32s_[kSimpleEntryFileCount]; |
271 | 278 |
272 // If |have_written_[index]| is true, we have written to the stream |index|. | 279 // If |have_written_[index]| is true, we have written to the stream |index|. |
273 bool have_written_[kSimpleEntryFileCount]; | 280 bool have_written_[kSimpleEntryFileCount]; |
274 | 281 |
275 // Reflects how much CRC checking has been done with the entry. This state is | 282 // Reflects how much CRC checking has been done with the entry. This state is |
276 // reported on closing each entry stream. | 283 // reported on closing each entry stream. |
277 CheckCrcResult crc_check_state_[kSimpleEntryFileCount]; | 284 CheckCrcResult crc_check_state_[kSimpleEntryFileCount]; |
278 | 285 |
279 // The |synchronous_entry_| is the worker thread object that performs IO on | 286 // The |synchronous_entry_| is the worker thread object that performs IO on |
280 // entries. It's owned by this SimpleEntryImpl whenever |operation_running_| | 287 // entries. It's owned by this SimpleEntryImpl whenever |executing_operation_| |
281 // is false (i.e. when an operation is not pending on the worker pool). | 288 // is false (i.e. when an operation is not pending on the worker pool). When |
| 289 // an operation is being executed no one owns the synchronous entry. Therefore |
| 290 // SimpleEntryImpl should not be deleted while an operation is running as that |
| 291 // would leak the SimpleSynchronousEntry. |
282 SimpleSynchronousEntry* synchronous_entry_; | 292 SimpleSynchronousEntry* synchronous_entry_; |
283 | 293 |
284 std::queue<SimpleEntryOperation> pending_operations_; | 294 std::queue<SimpleEntryOperation> pending_operations_; |
285 | 295 |
286 net::BoundNetLog net_log_; | 296 net::BoundNetLog net_log_; |
287 | 297 |
288 scoped_ptr<SimpleEntryOperation> executing_operation_; | 298 scoped_ptr<SimpleEntryOperation> executing_operation_; |
289 }; | 299 }; |
290 | 300 |
291 } // namespace disk_cache | 301 } // namespace disk_cache |
292 | 302 |
293 #endif // NET_DISK_CACHE_SIMPLE_SIMPLE_ENTRY_IMPL_H_ | 303 #endif // NET_DISK_CACHE_SIMPLE_SIMPLE_ENTRY_IMPL_H_ |
OLD | NEW |