OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // This file declares a HttpTransactionFactory implementation that can be | 5 // This file declares a HttpTransactionFactory implementation that can be |
6 // layered on top of another HttpTransactionFactory to add HTTP caching. The | 6 // layered on top of another HttpTransactionFactory to add HTTP caching. The |
7 // caching logic follows RFC 7234 (any exceptions are called out in the code). | 7 // caching logic follows RFC 7234 (any exceptions are called out in the code). |
8 // | 8 // |
9 // The HttpCache takes a disk_cache::Backend as a parameter, and uses that for | 9 // The HttpCache takes a disk_cache::Backend as a parameter, and uses that for |
10 // the cache storage. | 10 // the cache storage. |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 public: | 62 public: |
63 // The cache mode of operation. | 63 // The cache mode of operation. |
64 enum Mode { | 64 enum Mode { |
65 // Normal mode just behaves like a standard web cache. | 65 // Normal mode just behaves like a standard web cache. |
66 NORMAL = 0, | 66 NORMAL = 0, |
67 // Disables reads and writes from the cache. | 67 // Disables reads and writes from the cache. |
68 // Equivalent to setting LOAD_DISABLE_CACHE on every request. | 68 // Equivalent to setting LOAD_DISABLE_CACHE on every request. |
69 DISABLE | 69 DISABLE |
70 }; | 70 }; |
71 | 71 |
| 72 class WritersTest; |
| 73 |
72 // A BackendFactory creates a backend object to be used by the HttpCache. | 74 // A BackendFactory creates a backend object to be used by the HttpCache. |
73 class NET_EXPORT BackendFactory { | 75 class NET_EXPORT BackendFactory { |
74 public: | 76 public: |
75 virtual ~BackendFactory() {} | 77 virtual ~BackendFactory() {} |
76 | 78 |
77 // The actual method to build the backend. Returns a net error code. If | 79 // The actual method to build the backend. Returns a net error code. If |
78 // ERR_IO_PENDING is returned, the |callback| will be notified when the | 80 // ERR_IO_PENDING is returned, the |callback| will be notified when the |
79 // operation completes, and |backend| must remain valid until the | 81 // operation completes, and |backend| must remain valid until the |
80 // notification arrives. | 82 // notification arrives. |
81 // The implementation must not access the factory object after invoking the | 83 // The implementation must not access the factory object after invoking the |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 kMetadataIndex, | 235 kMetadataIndex, |
234 | 236 |
235 // Must remain at the end of the enum. | 237 // Must remain at the end of the enum. |
236 kNumCacheEntryDataIndices | 238 kNumCacheEntryDataIndices |
237 }; | 239 }; |
238 | 240 |
239 class MetadataWriter; | 241 class MetadataWriter; |
240 class QuicServerInfoFactoryAdaptor; | 242 class QuicServerInfoFactoryAdaptor; |
241 class Transaction; | 243 class Transaction; |
242 class WorkItem; | 244 class WorkItem; |
| 245 class Writers; |
| 246 friend class WritersTest; // To access ActiveEntry in the test class. |
243 friend class Transaction; | 247 friend class Transaction; |
244 friend class ViewCacheHelper; | 248 friend class ViewCacheHelper; |
245 struct PendingOp; // Info for an entry under construction. | 249 struct PendingOp; // Info for an entry under construction. |
246 | 250 |
247 using TransactionList = std::list<Transaction*>; | 251 using TransactionList = std::list<Transaction*>; |
248 using TransactionSet = std::unordered_set<Transaction*>; | 252 using TransactionSet = std::unordered_set<Transaction*>; |
249 typedef std::list<std::unique_ptr<WorkItem>> WorkItemList; | 253 typedef std::list<std::unique_ptr<WorkItem>> WorkItemList; |
250 | 254 |
251 struct ActiveEntry { | 255 struct ActiveEntry { |
252 explicit ActiveEntry(disk_cache::Entry* entry); | 256 explicit ActiveEntry(disk_cache::Entry* entry); |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
435 std::unique_ptr<base::Clock> clock_; | 439 std::unique_ptr<base::Clock> clock_; |
436 | 440 |
437 base::WeakPtrFactory<HttpCache> weak_factory_; | 441 base::WeakPtrFactory<HttpCache> weak_factory_; |
438 | 442 |
439 DISALLOW_COPY_AND_ASSIGN(HttpCache); | 443 DISALLOW_COPY_AND_ASSIGN(HttpCache); |
440 }; | 444 }; |
441 | 445 |
442 } // namespace net | 446 } // namespace net |
443 | 447 |
444 #endif // NET_HTTP_HTTP_CACHE_H_ | 448 #endif // NET_HTTP_HTTP_CACHE_H_ |
OLD | NEW |