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

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

Issue 8526006: Close idle sockets next time we are about to send data. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: code conventions Created 9 years, 1 month 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
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_
11 #pragma once 11 #pragma once
12 12
13 #include <map> 13 #include <map>
14 #include "base/basictypes.h" 14 #include "base/basictypes.h"
15 #include "base/memory/ref_counted.h" 15 #include "base/memory/ref_counted.h"
16 #include "base/memory/scoped_ptr.h" 16 #include "base/memory/scoped_ptr.h"
17 #include "base/stl_util.h" 17 #include "base/stl_util.h"
18 #include "base/template_util.h" 18 #include "base/template_util.h"
19 #include "base/threading/non_thread_safe.h" 19 #include "base/threading/non_thread_safe.h"
20 #include "net/base/cert_database.h" 20 #include "net/base/cert_database.h"
21 #include "net/base/completion_callback.h" 21 #include "net/base/completion_callback.h"
22 #include "net/base/net_export.h" 22 #include "net/base/net_export.h"
23 #include "net/base/request_priority.h" 23 #include "net/base/request_priority.h"
24 #include "net/socket/client_socket_pool_histograms.h" 24 #include "net/socket/client_socket_pool_histograms.h"
25 #include "net/socket/client_socket_pool_options.h"
25 26
26 class GURL; 27 class GURL;
27 28
28 namespace base { 29 namespace base {
29 class Value; 30 class Value;
30 } 31 }
31 32
32 namespace net { 33 namespace net {
33 34
34 class BoundNetLog; 35 class BoundNetLog;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 public: 83 public:
83 ClientSocketPoolManager(NetLog* net_log, 84 ClientSocketPoolManager(NetLog* net_log,
84 ClientSocketFactory* socket_factory, 85 ClientSocketFactory* socket_factory,
85 HostResolver* host_resolver, 86 HostResolver* host_resolver,
86 CertVerifier* cert_verifier, 87 CertVerifier* cert_verifier,
87 OriginBoundCertService* origin_bound_cert_service, 88 OriginBoundCertService* origin_bound_cert_service,
88 DnsRRResolver* dnsrr_resolver, 89 DnsRRResolver* dnsrr_resolver,
89 DnsCertProvenanceChecker* dns_cert_checker, 90 DnsCertProvenanceChecker* dns_cert_checker,
90 SSLHostInfoFactory* ssl_host_info_factory, 91 SSLHostInfoFactory* ssl_host_info_factory,
91 ProxyService* proxy_service, 92 ProxyService* proxy_service,
92 SSLConfigService* ssl_config_service); 93 SSLConfigService* ssl_config_service,
94 bool use_cleanup_timer);
93 virtual ~ClientSocketPoolManager(); 95 virtual ~ClientSocketPoolManager();
94 96
95 void FlushSocketPools(); 97 void FlushSocketPools();
96 void CloseIdleSockets(); 98 void CloseIdleSockets();
97 99
98 TransportClientSocketPool* transport_socket_pool() { 100 TransportClientSocketPool* transport_socket_pool() {
99 return transport_socket_pool_.get(); 101 return transport_socket_pool_.get();
100 } 102 }
101 103
102 SSLClientSocketPool* ssl_socket_pool() { return ssl_socket_pool_.get(); } 104 SSLClientSocketPool* ssl_socket_pool() { return ssl_socket_pool_.get(); }
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 HostResolver* const host_resolver_; 194 HostResolver* const host_resolver_;
193 CertVerifier* const cert_verifier_; 195 CertVerifier* const cert_verifier_;
194 OriginBoundCertService* const origin_bound_cert_service_; 196 OriginBoundCertService* const origin_bound_cert_service_;
195 DnsRRResolver* const dnsrr_resolver_; 197 DnsRRResolver* const dnsrr_resolver_;
196 DnsCertProvenanceChecker* const dns_cert_checker_; 198 DnsCertProvenanceChecker* const dns_cert_checker_;
197 SSLHostInfoFactory* const ssl_host_info_factory_; 199 SSLHostInfoFactory* const ssl_host_info_factory_;
198 ProxyService* const proxy_service_; 200 ProxyService* const proxy_service_;
199 const scoped_refptr<SSLConfigService> ssl_config_service_; 201 const scoped_refptr<SSLConfigService> ssl_config_service_;
200 202
201 // Note: this ordering is important. 203 // Note: this ordering is important.
204 ClientSocketPoolOptions options_;
202 205
203 ClientSocketPoolHistograms transport_pool_histograms_; 206 ClientSocketPoolHistograms transport_pool_histograms_;
204 scoped_ptr<TransportClientSocketPool> transport_socket_pool_; 207 scoped_ptr<TransportClientSocketPool> transport_socket_pool_;
205 208
206 ClientSocketPoolHistograms ssl_pool_histograms_; 209 ClientSocketPoolHistograms ssl_pool_histograms_;
207 scoped_ptr<SSLClientSocketPool> ssl_socket_pool_; 210 scoped_ptr<SSLClientSocketPool> ssl_socket_pool_;
208 211
209 ClientSocketPoolHistograms transport_for_socks_pool_histograms_; 212 ClientSocketPoolHistograms transport_for_socks_pool_histograms_;
210 TransportSocketPoolMap transport_socket_pools_for_socks_proxies_; 213 TransportSocketPoolMap transport_socket_pools_for_socks_proxies_;
211 214
(...skipping 14 matching lines...) Expand all
226 229
227 ClientSocketPoolHistograms ssl_socket_pool_for_proxies_histograms_; 230 ClientSocketPoolHistograms ssl_socket_pool_for_proxies_histograms_;
228 SSLSocketPoolMap ssl_socket_pools_for_proxies_; 231 SSLSocketPoolMap ssl_socket_pools_for_proxies_;
229 232
230 DISALLOW_COPY_AND_ASSIGN(ClientSocketPoolManager); 233 DISALLOW_COPY_AND_ASSIGN(ClientSocketPoolManager);
231 }; 234 };
232 235
233 } // namespace net 236 } // namespace net
234 237
235 #endif // NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_H_ 238 #endif // NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698