OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 // ClientSocketPoolManager manages access to all ClientSocketPools. It's a | 5 // ClientSocketPoolManager manages access to all ClientSocketPools. It's a |
6 // simple container for all of them. Most importantly, it handles the lifetime | 6 // simple container for all of them. Most importantly, it handles the lifetime |
7 // and destruction order properly. | 7 // and destruction order properly. |
8 | 8 |
9 #ifndef NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_H_ | 9 #ifndef NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_H_ |
10 #define NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_H_ | 10 #define NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_H_ |
(...skipping 26 matching lines...) Expand all Loading... |
37 class HttpProxyClientSocketPool; | 37 class HttpProxyClientSocketPool; |
38 class HostResolver; | 38 class HostResolver; |
39 class NetLog; | 39 class NetLog; |
40 class ProxyInfo; | 40 class ProxyInfo; |
41 class ProxyService; | 41 class ProxyService; |
42 class SOCKSClientSocketPool; | 42 class SOCKSClientSocketPool; |
43 class SSLClientSocketPool; | 43 class SSLClientSocketPool; |
44 class SSLConfigService; | 44 class SSLConfigService; |
45 class SSLHostInfoFactory; | 45 class SSLHostInfoFactory; |
46 class TCPClientSocketPool; | 46 class TCPClientSocketPool; |
| 47 class SCTPClientSocketPool; |
47 | 48 |
48 struct HttpRequestInfo; | 49 struct HttpRequestInfo; |
49 struct SSLConfig; | 50 struct SSLConfig; |
50 | 51 |
51 namespace internal { | 52 namespace internal { |
52 | 53 |
53 // A helper class for auto-deleting Values in the destructor. | 54 // A helper class for auto-deleting Values in the destructor. |
54 template <typename Key, typename Value> | 55 template <typename Key, typename Value> |
55 class OwnedPoolMap : public std::map<Key, Value> { | 56 class OwnedPoolMap : public std::map<Key, Value> { |
56 public: | 57 public: |
(...skipping 21 matching lines...) Expand all Loading... |
78 SSLHostInfoFactory* ssl_host_info_factory, | 79 SSLHostInfoFactory* ssl_host_info_factory, |
79 ProxyService* proxy_service, | 80 ProxyService* proxy_service, |
80 SSLConfigService* ssl_config_service); | 81 SSLConfigService* ssl_config_service); |
81 ~ClientSocketPoolManager(); | 82 ~ClientSocketPoolManager(); |
82 | 83 |
83 void FlushSocketPools(); | 84 void FlushSocketPools(); |
84 void CloseIdleSockets(); | 85 void CloseIdleSockets(); |
85 | 86 |
86 TCPClientSocketPool* tcp_socket_pool() { return tcp_socket_pool_.get(); } | 87 TCPClientSocketPool* tcp_socket_pool() { return tcp_socket_pool_.get(); } |
87 | 88 |
| 89 SCTPClientSocketPool* sctp_socket_pool() { return sctp_socket_pool_.get(); } |
| 90 |
88 SSLClientSocketPool* ssl_socket_pool() { return ssl_socket_pool_.get(); } | 91 SSLClientSocketPool* ssl_socket_pool() { return ssl_socket_pool_.get(); } |
89 | 92 |
90 SOCKSClientSocketPool* GetSocketPoolForSOCKSProxy( | 93 SOCKSClientSocketPool* GetSocketPoolForSOCKSProxy( |
91 const HostPortPair& socks_proxy); | 94 const HostPortPair& socks_proxy); |
92 | 95 |
93 HttpProxyClientSocketPool* GetSocketPoolForHTTPProxy( | 96 HttpProxyClientSocketPool* GetSocketPoolForHTTPProxy( |
94 const HostPortPair& http_proxy); | 97 const HostPortPair& http_proxy); |
95 | 98 |
96 SSLClientSocketPool* GetSocketPoolForSSLWithProxy( | 99 SSLClientSocketPool* GetSocketPoolForSSLWithProxy( |
97 const HostPortPair& proxy_server); | 100 const HostPortPair& proxy_server); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
148 Value* SocketPoolInfoToValue() const; | 151 Value* SocketPoolInfoToValue() const; |
149 | 152 |
150 // CertDatabase::Observer methods: | 153 // CertDatabase::Observer methods: |
151 virtual void OnUserCertAdded(X509Certificate* cert); | 154 virtual void OnUserCertAdded(X509Certificate* cert); |
152 | 155 |
153 private: | 156 private: |
154 friend class HttpNetworkSessionPeer; | 157 friend class HttpNetworkSessionPeer; |
155 | 158 |
156 typedef internal::OwnedPoolMap<HostPortPair, TCPClientSocketPool*> | 159 typedef internal::OwnedPoolMap<HostPortPair, TCPClientSocketPool*> |
157 TCPSocketPoolMap; | 160 TCPSocketPoolMap; |
| 161 typedef internal::OwnedPoolMap<HostPortPair, SCTPClientSocketPool*> |
| 162 SCTPSocketPoolMap; |
158 typedef internal::OwnedPoolMap<HostPortPair, SOCKSClientSocketPool*> | 163 typedef internal::OwnedPoolMap<HostPortPair, SOCKSClientSocketPool*> |
159 SOCKSSocketPoolMap; | 164 SOCKSSocketPoolMap; |
160 typedef internal::OwnedPoolMap<HostPortPair, HttpProxyClientSocketPool*> | 165 typedef internal::OwnedPoolMap<HostPortPair, HttpProxyClientSocketPool*> |
161 HTTPProxySocketPoolMap; | 166 HTTPProxySocketPoolMap; |
162 typedef internal::OwnedPoolMap<HostPortPair, SSLClientSocketPool*> | 167 typedef internal::OwnedPoolMap<HostPortPair, SSLClientSocketPool*> |
163 SSLSocketPoolMap; | 168 SSLSocketPoolMap; |
164 | 169 |
165 NetLog* const net_log_; | 170 NetLog* const net_log_; |
166 ClientSocketFactory* const socket_factory_; | 171 ClientSocketFactory* const socket_factory_; |
167 HostResolver* const host_resolver_; | 172 HostResolver* const host_resolver_; |
168 CertVerifier* const cert_verifier_; | 173 CertVerifier* const cert_verifier_; |
169 DnsRRResolver* const dnsrr_resolver_; | 174 DnsRRResolver* const dnsrr_resolver_; |
170 DnsCertProvenanceChecker* const dns_cert_checker_; | 175 DnsCertProvenanceChecker* const dns_cert_checker_; |
171 SSLHostInfoFactory* const ssl_host_info_factory_; | 176 SSLHostInfoFactory* const ssl_host_info_factory_; |
172 const scoped_refptr<ProxyService> proxy_service_; | 177 const scoped_refptr<ProxyService> proxy_service_; |
173 const scoped_refptr<SSLConfigService> ssl_config_service_; | 178 const scoped_refptr<SSLConfigService> ssl_config_service_; |
174 | 179 |
175 // Note: this ordering is important. | 180 // Note: this ordering is important. |
176 | 181 |
177 ClientSocketPoolHistograms tcp_pool_histograms_; | 182 ClientSocketPoolHistograms tcp_pool_histograms_; |
178 scoped_ptr<TCPClientSocketPool> tcp_socket_pool_; | 183 scoped_ptr<TCPClientSocketPool> tcp_socket_pool_; |
179 | 184 |
| 185 ClientSocketPoolHistograms sctp_pool_histograms_; |
| 186 scoped_ptr<SCTPClientSocketPool> sctp_socket_pool_; |
| 187 |
180 ClientSocketPoolHistograms ssl_pool_histograms_; | 188 ClientSocketPoolHistograms ssl_pool_histograms_; |
181 scoped_ptr<SSLClientSocketPool> ssl_socket_pool_; | 189 scoped_ptr<SSLClientSocketPool> ssl_socket_pool_; |
182 | 190 |
183 ClientSocketPoolHistograms tcp_for_socks_pool_histograms_; | 191 ClientSocketPoolHistograms tcp_for_socks_pool_histograms_; |
184 TCPSocketPoolMap tcp_socket_pools_for_socks_proxies_; | 192 TCPSocketPoolMap tcp_socket_pools_for_socks_proxies_; |
185 | 193 |
186 ClientSocketPoolHistograms socks_pool_histograms_; | 194 ClientSocketPoolHistograms socks_pool_histograms_; |
187 SOCKSSocketPoolMap socks_socket_pools_; | 195 SOCKSSocketPoolMap socks_socket_pools_; |
188 | 196 |
189 ClientSocketPoolHistograms tcp_for_http_proxy_pool_histograms_; | 197 ClientSocketPoolHistograms tcp_for_http_proxy_pool_histograms_; |
(...skipping 10 matching lines...) Expand all Loading... |
200 | 208 |
201 ClientSocketPoolHistograms ssl_socket_pool_for_proxies_histograms_; | 209 ClientSocketPoolHistograms ssl_socket_pool_for_proxies_histograms_; |
202 SSLSocketPoolMap ssl_socket_pools_for_proxies_; | 210 SSLSocketPoolMap ssl_socket_pools_for_proxies_; |
203 | 211 |
204 DISALLOW_COPY_AND_ASSIGN(ClientSocketPoolManager); | 212 DISALLOW_COPY_AND_ASSIGN(ClientSocketPoolManager); |
205 }; | 213 }; |
206 | 214 |
207 } // namespace net | 215 } // namespace net |
208 | 216 |
209 #endif // NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_H_ | 217 #endif // NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_H_ |
OLD | NEW |