| 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 |