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

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

Issue 1376473003: Notify NQE of TCP RTT values (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More plumbing Created 4 years, 9 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_IMPL_H_ 5 #ifndef NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_IMPL_H_
6 #define NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_IMPL_H_ 6 #define NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_IMPL_H_
7 7
8 #include <map> 8 #include <map>
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "base/memory/ref_counted.h" 11 #include "base/memory/ref_counted.h"
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "base/stl_util.h" 13 #include "base/stl_util.h"
14 #include "base/template_util.h" 14 #include "base/template_util.h"
15 #include "base/threading/non_thread_safe.h" 15 #include "base/threading/non_thread_safe.h"
16 #include "net/cert/cert_database.h" 16 #include "net/cert/cert_database.h"
17 #include "net/http/http_network_session.h" 17 #include "net/http/http_network_session.h"
18 #include "net/socket/client_socket_pool_manager.h" 18 #include "net/socket/client_socket_pool_manager.h"
19 19
20 namespace net { 20 namespace net {
21 21
22 class CertVerifier; 22 class CertVerifier;
23 class ChannelIDService; 23 class ChannelIDService;
24 class ClientSocketFactory; 24 class ClientSocketFactory;
25 class CTVerifier; 25 class CTVerifier;
26 class HttpProxyClientSocketPool; 26 class HttpProxyClientSocketPool;
27 class HostResolver; 27 class HostResolver;
28 class NetLog; 28 class NetLog;
29 class SocketPerformanceWatcherFactory;
29 class SOCKSClientSocketPool; 30 class SOCKSClientSocketPool;
30 class SSLClientSocketPool; 31 class SSLClientSocketPool;
31 class SSLConfigService; 32 class SSLConfigService;
32 class TransportClientSocketPool; 33 class TransportClientSocketPool;
33 class TransportSecurityState; 34 class TransportSecurityState;
34 35
35 namespace internal { 36 namespace internal {
36 37
37 // A helper class for auto-deleting Values in the destructor. 38 // A helper class for auto-deleting Values in the destructor.
38 template <typename Key, typename Value> 39 template <typename Key, typename Value>
39 class OwnedPoolMap : public std::map<Key, Value> { 40 class OwnedPoolMap : public std::map<Key, Value> {
40 public: 41 public:
41 OwnedPoolMap() { 42 OwnedPoolMap() {
42 static_assert(base::is_pointer<Value>::value, "value must be a pointer"); 43 static_assert(base::is_pointer<Value>::value, "value must be a pointer");
43 } 44 }
44 45
45 ~OwnedPoolMap() { 46 ~OwnedPoolMap() {
46 STLDeleteValues(this); 47 STLDeleteValues(this);
47 } 48 }
48 }; 49 };
49 50
50 } // namespace internal 51 } // namespace internal
51 52
52 class ClientSocketPoolManagerImpl : public base::NonThreadSafe, 53 class ClientSocketPoolManagerImpl : public base::NonThreadSafe,
53 public ClientSocketPoolManager, 54 public ClientSocketPoolManager,
54 public CertDatabase::Observer { 55 public CertDatabase::Observer {
55 public: 56 public:
56 ClientSocketPoolManagerImpl(NetLog* net_log, 57 ClientSocketPoolManagerImpl(
57 ClientSocketFactory* socket_factory, 58 NetLog* net_log,
58 HostResolver* host_resolver, 59 ClientSocketFactory* socket_factory,
59 CertVerifier* cert_verifier, 60 SocketPerformanceWatcherFactory* socket_performance_watcher_factory,
60 ChannelIDService* channel_id_service, 61 HostResolver* host_resolver,
61 TransportSecurityState* transport_security_state, 62 CertVerifier* cert_verifier,
62 CTVerifier* cert_transparency_verifier, 63 ChannelIDService* channel_id_service,
63 CTPolicyEnforcer* ct_policy_enforcer, 64 TransportSecurityState* transport_security_state,
64 const std::string& ssl_session_cache_shard, 65 CTVerifier* cert_transparency_verifier,
65 SSLConfigService* ssl_config_service, 66 CTPolicyEnforcer* ct_policy_enforcer,
66 HttpNetworkSession::SocketPoolType pool_type); 67 const std::string& ssl_session_cache_shard,
68 SSLConfigService* ssl_config_service,
69 HttpNetworkSession::SocketPoolType pool_type);
67 ~ClientSocketPoolManagerImpl() override; 70 ~ClientSocketPoolManagerImpl() override;
68 71
69 void FlushSocketPoolsWithError(int error) override; 72 void FlushSocketPoolsWithError(int error) override;
70 void CloseIdleSockets() override; 73 void CloseIdleSockets() override;
71 74
72 TransportClientSocketPool* GetTransportSocketPool() override; 75 TransportClientSocketPool* GetTransportSocketPool() override;
73 76
74 SSLClientSocketPool* GetSSLSocketPool() override; 77 SSLClientSocketPool* GetSSLSocketPool() override;
75 78
76 SOCKSClientSocketPool* GetSocketPoolForSOCKSProxy( 79 SOCKSClientSocketPool* GetSocketPoolForSOCKSProxy(
(...skipping 17 matching lines...) Expand all
94 TransportSocketPoolMap; 97 TransportSocketPoolMap;
95 typedef internal::OwnedPoolMap<HostPortPair, SOCKSClientSocketPool*> 98 typedef internal::OwnedPoolMap<HostPortPair, SOCKSClientSocketPool*>
96 SOCKSSocketPoolMap; 99 SOCKSSocketPoolMap;
97 typedef internal::OwnedPoolMap<HostPortPair, HttpProxyClientSocketPool*> 100 typedef internal::OwnedPoolMap<HostPortPair, HttpProxyClientSocketPool*>
98 HTTPProxySocketPoolMap; 101 HTTPProxySocketPoolMap;
99 typedef internal::OwnedPoolMap<HostPortPair, SSLClientSocketPool*> 102 typedef internal::OwnedPoolMap<HostPortPair, SSLClientSocketPool*>
100 SSLSocketPoolMap; 103 SSLSocketPoolMap;
101 104
102 NetLog* const net_log_; 105 NetLog* const net_log_;
103 ClientSocketFactory* const socket_factory_; 106 ClientSocketFactory* const socket_factory_;
107 SocketPerformanceWatcherFactory* socket_performance_watcher_factory_;
104 HostResolver* const host_resolver_; 108 HostResolver* const host_resolver_;
105 CertVerifier* const cert_verifier_; 109 CertVerifier* const cert_verifier_;
106 ChannelIDService* const channel_id_service_; 110 ChannelIDService* const channel_id_service_;
107 TransportSecurityState* const transport_security_state_; 111 TransportSecurityState* const transport_security_state_;
108 CTVerifier* const cert_transparency_verifier_; 112 CTVerifier* const cert_transparency_verifier_;
109 CTPolicyEnforcer* const ct_policy_enforcer_; 113 CTPolicyEnforcer* const ct_policy_enforcer_;
110 const std::string ssl_session_cache_shard_; 114 const std::string ssl_session_cache_shard_;
111 const scoped_refptr<SSLConfigService> ssl_config_service_; 115 const scoped_refptr<SSLConfigService> ssl_config_service_;
112 const HttpNetworkSession::SocketPoolType pool_type_; 116 const HttpNetworkSession::SocketPoolType pool_type_;
113 117
114 // Note: this ordering is important. 118 // Note: this ordering is important.
115 119
116 scoped_ptr<TransportClientSocketPool> transport_socket_pool_; 120 scoped_ptr<TransportClientSocketPool> transport_socket_pool_;
117 scoped_ptr<SSLClientSocketPool> ssl_socket_pool_; 121 scoped_ptr<SSLClientSocketPool> ssl_socket_pool_;
118 TransportSocketPoolMap transport_socket_pools_for_socks_proxies_; 122 TransportSocketPoolMap transport_socket_pools_for_socks_proxies_;
119 SOCKSSocketPoolMap socks_socket_pools_; 123 SOCKSSocketPoolMap socks_socket_pools_;
120 TransportSocketPoolMap transport_socket_pools_for_http_proxies_; 124 TransportSocketPoolMap transport_socket_pools_for_http_proxies_;
121 TransportSocketPoolMap transport_socket_pools_for_https_proxies_; 125 TransportSocketPoolMap transport_socket_pools_for_https_proxies_;
122 SSLSocketPoolMap ssl_socket_pools_for_https_proxies_; 126 SSLSocketPoolMap ssl_socket_pools_for_https_proxies_;
123 HTTPProxySocketPoolMap http_proxy_socket_pools_; 127 HTTPProxySocketPoolMap http_proxy_socket_pools_;
124 SSLSocketPoolMap ssl_socket_pools_for_proxies_; 128 SSLSocketPoolMap ssl_socket_pools_for_proxies_;
125 129
126 DISALLOW_COPY_AND_ASSIGN(ClientSocketPoolManagerImpl); 130 DISALLOW_COPY_AND_ASSIGN(ClientSocketPoolManagerImpl);
127 }; 131 };
128 132
129 } // namespace net 133 } // namespace net
130 134
131 #endif // NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_IMPL_H_ 135 #endif // NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698