Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(429)

Side by Side Diff: net/socket/client_socket_pool_manager.h

Issue 6800009: Attn: Mike Belshe Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698