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

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

Issue 3747003: net: clean up SSLHostInfo construction. (Closed)
Patch Set: ... Created 10 years, 2 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
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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_ 9 #ifndef NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_
10 #define NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_ 10 #define NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_
(...skipping 16 matching lines...) Expand all
27 class ClientSocketPoolHistograms; 27 class ClientSocketPoolHistograms;
28 class DnsRRResolver; 28 class DnsRRResolver;
29 class HostPortPair; 29 class HostPortPair;
30 class HttpProxyClientSocketPool; 30 class HttpProxyClientSocketPool;
31 class HostResolver; 31 class HostResolver;
32 class NetLog; 32 class NetLog;
33 class ProxyService; 33 class ProxyService;
34 class SOCKSClientSocketPool; 34 class SOCKSClientSocketPool;
35 class SSLClientSocketPool; 35 class SSLClientSocketPool;
36 class SSLConfigService; 36 class SSLConfigService;
37 class SSLHostInfoFactory;
37 class TCPClientSocketPool; 38 class TCPClientSocketPool;
38 39
39 namespace internal { 40 namespace internal {
40 41
41 // A helper class for auto-deleting Values in the destructor. 42 // A helper class for auto-deleting Values in the destructor.
42 template <typename Key, typename Value> 43 template <typename Key, typename Value>
43 class OwnedPoolMap : public std::map<Key, Value> { 44 class OwnedPoolMap : public std::map<Key, Value> {
44 public: 45 public:
45 OwnedPoolMap() { 46 OwnedPoolMap() {
46 COMPILE_ASSERT(base::is_pointer<Value>::value, 47 COMPILE_ASSERT(base::is_pointer<Value>::value,
47 value_must_be_a_pointer); 48 value_must_be_a_pointer);
48 } 49 }
49 50
50 ~OwnedPoolMap() { 51 ~OwnedPoolMap() {
51 STLDeleteValues(this); 52 STLDeleteValues(this);
52 } 53 }
53 }; 54 };
54 55
55 } // internal 56 } // internal
56 57
57 class ClientSocketPoolManager : public NonThreadSafe { 58 class ClientSocketPoolManager : public NonThreadSafe {
58 public: 59 public:
59 ClientSocketPoolManager(NetLog* net_log, 60 ClientSocketPoolManager(NetLog* net_log,
60 ClientSocketFactory* socket_factory, 61 ClientSocketFactory* socket_factory,
61 HostResolver* host_resolver, 62 HostResolver* host_resolver,
62 DnsRRResolver* dnsrr_resolver, 63 DnsRRResolver* dnsrr_resolver,
64 SSLHostInfoFactory* ssl_host_info_factory,
63 ProxyService* proxy_service, 65 ProxyService* proxy_service,
64 SSLConfigService* ssl_config_service); 66 SSLConfigService* ssl_config_service);
65 ~ClientSocketPoolManager(); 67 ~ClientSocketPoolManager();
66 68
67 void FlushSocketPools(); 69 void FlushSocketPools();
68 70
69 TCPClientSocketPool* tcp_socket_pool() { return tcp_socket_pool_.get(); } 71 TCPClientSocketPool* tcp_socket_pool() { return tcp_socket_pool_.get(); }
70 72
71 SSLClientSocketPool* ssl_socket_pool() { return ssl_socket_pool_.get(); } 73 SSLClientSocketPool* ssl_socket_pool() { return ssl_socket_pool_.get(); }
72 74
(...skipping 22 matching lines...) Expand all
95 typedef internal::OwnedPoolMap<HostPortPair, SOCKSClientSocketPool*> 97 typedef internal::OwnedPoolMap<HostPortPair, SOCKSClientSocketPool*>
96 SOCKSSocketPoolMap; 98 SOCKSSocketPoolMap;
97 typedef internal::OwnedPoolMap<HostPortPair, HttpProxyClientSocketPool*> 99 typedef internal::OwnedPoolMap<HostPortPair, HttpProxyClientSocketPool*>
98 HTTPProxySocketPoolMap; 100 HTTPProxySocketPoolMap;
99 typedef internal::OwnedPoolMap<HostPortPair, SSLClientSocketPool*> 101 typedef internal::OwnedPoolMap<HostPortPair, SSLClientSocketPool*>
100 SSLSocketPoolMap; 102 SSLSocketPoolMap;
101 103
102 NetLog* const net_log_; 104 NetLog* const net_log_;
103 ClientSocketFactory* const socket_factory_; 105 ClientSocketFactory* const socket_factory_;
104 HostResolver* const host_resolver_; 106 HostResolver* const host_resolver_;
105 DnsRRResolver* dnsrr_resolver_; 107 DnsRRResolver* const dnsrr_resolver_;
108 SSLHostInfoFactory* const ssl_host_info_factory_;
106 const scoped_refptr<ProxyService> proxy_service_; 109 const scoped_refptr<ProxyService> proxy_service_;
107 const scoped_refptr<SSLConfigService> ssl_config_service_; 110 const scoped_refptr<SSLConfigService> ssl_config_service_;
108 111
109 // Note: this ordering is important. 112 // Note: this ordering is important.
110 113
111 ClientSocketPoolHistograms tcp_pool_histograms_; 114 ClientSocketPoolHistograms tcp_pool_histograms_;
112 scoped_ptr<TCPClientSocketPool> tcp_socket_pool_; 115 scoped_ptr<TCPClientSocketPool> tcp_socket_pool_;
113 116
114 ClientSocketPoolHistograms ssl_pool_histograms_; 117 ClientSocketPoolHistograms ssl_pool_histograms_;
115 scoped_ptr<SSLClientSocketPool> ssl_socket_pool_; 118 scoped_ptr<SSLClientSocketPool> ssl_socket_pool_;
(...skipping 18 matching lines...) Expand all
134 137
135 ClientSocketPoolHistograms ssl_socket_pool_for_proxies_histograms_; 138 ClientSocketPoolHistograms ssl_socket_pool_for_proxies_histograms_;
136 SSLSocketPoolMap ssl_socket_pools_for_proxies_; 139 SSLSocketPoolMap ssl_socket_pools_for_proxies_;
137 140
138 DISALLOW_COPY_AND_ASSIGN(ClientSocketPoolManager); 141 DISALLOW_COPY_AND_ASSIGN(ClientSocketPoolManager);
139 }; 142 };
140 143
141 } // namespace net 144 } // namespace net
142 145
143 #endif // NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_ 146 #endif // NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_
OLDNEW
« no previous file with comments | « net/socket/client_socket_pool_base_unittest.cc ('k') | net/socket/client_socket_pool_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698