OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 2616 (any exceptions are called out in the code). | 7 // caching logic follows RFC 2616 (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 30 matching lines...) Expand all Loading... |
41 ~HttpCache(); | 41 ~HttpCache(); |
42 | 42 |
43 // The cache mode of operation. | 43 // The cache mode of operation. |
44 enum Mode { | 44 enum Mode { |
45 // Normal mode just behaves like a standard web cache. | 45 // Normal mode just behaves like a standard web cache. |
46 NORMAL = 0, | 46 NORMAL = 0, |
47 // Record mode caches everything for purposes of offline playback. | 47 // Record mode caches everything for purposes of offline playback. |
48 RECORD, | 48 RECORD, |
49 // Playback mode replays from a cache without considering any | 49 // Playback mode replays from a cache without considering any |
50 // standard invalidations. | 50 // standard invalidations. |
51 PLAYBACK | 51 PLAYBACK, |
| 52 // Disables reads and writes from the cache. |
| 53 // Equivalent to setting LOAD_DISABLE_CACHE on every request. |
| 54 DISABLE |
52 }; | 55 }; |
53 | 56 |
54 // Initialize the cache from the directory where its data is stored. The | 57 // Initialize the cache from the directory where its data is stored. The |
55 // disk cache is initialized lazily (by CreateTransaction) in this case. If | 58 // disk cache is initialized lazily (by CreateTransaction) in this case. If |
56 // |cache_size| is zero, a default value will be calculated automatically. | 59 // |cache_size| is zero, a default value will be calculated automatically. |
57 HttpCache(ProxyService* proxy_service, | 60 HttpCache(ProxyService* proxy_service, |
58 const std::wstring& cache_dir, | 61 const std::wstring& cache_dir, |
59 int cache_size); | 62 int cache_size); |
60 | 63 |
61 // Initialize the cache from the directory where its data is stored. The | 64 // Initialize the cache from the directory where its data is stored. The |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 const HttpResponseInfo* response_info, | 99 const HttpResponseInfo* response_info, |
97 bool skip_transient_headers); | 100 bool skip_transient_headers); |
98 | 101 |
99 // Get/Set the cache's mode. | 102 // Get/Set the cache's mode. |
100 void set_mode(Mode value) { mode_ = value; } | 103 void set_mode(Mode value) { mode_ = value; } |
101 Mode mode() { return mode_; } | 104 Mode mode() { return mode_; } |
102 | 105 |
103 void set_type(CacheType type) { type_ = type; } | 106 void set_type(CacheType type) { type_ = type; } |
104 CacheType type() { return type_; } | 107 CacheType type() { return type_; } |
105 | 108 |
| 109 // Close All Idle Sockets. This is for debugging. |
| 110 void CloseIdleConnections(); |
| 111 |
106 private: | 112 private: |
107 | 113 |
108 // Types -------------------------------------------------------------------- | 114 // Types -------------------------------------------------------------------- |
109 | 115 |
110 class Transaction; | 116 class Transaction; |
111 friend class Transaction; | 117 friend class Transaction; |
112 | 118 |
113 typedef std::list<Transaction*> TransactionList; | 119 typedef std::list<Transaction*> TransactionList; |
114 | 120 |
115 struct ActiveEntry { | 121 struct ActiveEntry { |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
179 scoped_ptr<PlaybackCacheMap> playback_cache_map_; | 185 scoped_ptr<PlaybackCacheMap> playback_cache_map_; |
180 | 186 |
181 RevocableStore transactions_; | 187 RevocableStore transactions_; |
182 | 188 |
183 DISALLOW_COPY_AND_ASSIGN(HttpCache); | 189 DISALLOW_COPY_AND_ASSIGN(HttpCache); |
184 }; | 190 }; |
185 | 191 |
186 } // namespace net | 192 } // namespace net |
187 | 193 |
188 #endif // NET_HTTP_HTTP_CACHE_H_ | 194 #endif // NET_HTTP_HTTP_CACHE_H_ |
OLD | NEW |