OLD | NEW |
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_HTTP_HTTP_PROXY_CLIENT_SOCKET_POOL_H_ | 5 #ifndef NET_HTTP_HTTP_PROXY_CLIENT_SOCKET_POOL_H_ |
6 #define NET_HTTP_HTTP_PROXY_CLIENT_SOCKET_POOL_H_ | 6 #define NET_HTTP_HTTP_PROXY_CLIENT_SOCKET_POOL_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 const scoped_refptr<SSLSocketParams>& ssl_params() const { | 59 const scoped_refptr<SSLSocketParams>& ssl_params() const { |
60 return ssl_params_; | 60 return ssl_params_; |
61 } | 61 } |
62 const GURL& request_url() const { return request_url_; } | 62 const GURL& request_url() const { return request_url_; } |
63 const std::string& user_agent() const { return user_agent_; } | 63 const std::string& user_agent() const { return user_agent_; } |
64 const HostPortPair& endpoint() const { return endpoint_; } | 64 const HostPortPair& endpoint() const { return endpoint_; } |
65 HttpAuthCache* http_auth_cache() const { return http_auth_cache_; } | 65 HttpAuthCache* http_auth_cache() const { return http_auth_cache_; } |
66 HttpAuthHandlerFactory* http_auth_handler_factory() const { | 66 HttpAuthHandlerFactory* http_auth_handler_factory() const { |
67 return http_auth_handler_factory_; | 67 return http_auth_handler_factory_; |
68 } | 68 } |
69 SpdySessionPool* spdy_session_pool() { | 69 SpdySessionPool* spdy_session_pool() { return spdy_session_pool_; } |
70 return spdy_session_pool_; | |
71 } | |
72 const HostResolver::RequestInfo& destination() const; | 70 const HostResolver::RequestInfo& destination() const; |
73 bool tunnel() const { return tunnel_; } | 71 bool tunnel() const { return tunnel_; } |
74 bool ignore_limits() const { return ignore_limits_; } | 72 bool ignore_limits() const { return ignore_limits_; } |
75 | 73 |
76 private: | 74 private: |
77 friend class base::RefCounted<HttpProxySocketParams>; | 75 friend class base::RefCounted<HttpProxySocketParams>; |
78 ~HttpProxySocketParams(); | 76 ~HttpProxySocketParams(); |
79 | 77 |
80 const scoped_refptr<TransportSocketParams> transport_params_; | 78 const scoped_refptr<TransportSocketParams> transport_params_; |
81 const scoped_refptr<SSLSocketParams> ssl_params_; | 79 const scoped_refptr<SSLSocketParams> ssl_params_; |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 // Protocol negotiated with the server. | 164 // Protocol negotiated with the server. |
167 NextProto protocol_negotiated_; | 165 NextProto protocol_negotiated_; |
168 | 166 |
169 HttpResponseInfo error_response_info_; | 167 HttpResponseInfo error_response_info_; |
170 | 168 |
171 SpdyStreamRequest spdy_stream_request_; | 169 SpdyStreamRequest spdy_stream_request_; |
172 | 170 |
173 DISALLOW_COPY_AND_ASSIGN(HttpProxyConnectJob); | 171 DISALLOW_COPY_AND_ASSIGN(HttpProxyConnectJob); |
174 }; | 172 }; |
175 | 173 |
176 class NET_EXPORT_PRIVATE HttpProxyClientSocketPool | 174 class NET_EXPORT_PRIVATE HttpProxyClientSocketPool : public ClientSocketPool, |
177 : public ClientSocketPool, | 175 public HigherLayeredPool { |
178 public HigherLayeredPool { | |
179 public: | 176 public: |
180 typedef HttpProxySocketParams SocketParams; | 177 typedef HttpProxySocketParams SocketParams; |
181 | 178 |
182 HttpProxyClientSocketPool( | 179 HttpProxyClientSocketPool(int max_sockets, |
183 int max_sockets, | 180 int max_sockets_per_group, |
184 int max_sockets_per_group, | 181 ClientSocketPoolHistograms* histograms, |
185 ClientSocketPoolHistograms* histograms, | 182 HostResolver* host_resolver, |
186 HostResolver* host_resolver, | 183 TransportClientSocketPool* transport_pool, |
187 TransportClientSocketPool* transport_pool, | 184 SSLClientSocketPool* ssl_pool, |
188 SSLClientSocketPool* ssl_pool, | 185 NetLog* net_log); |
189 NetLog* net_log); | |
190 | 186 |
191 virtual ~HttpProxyClientSocketPool(); | 187 virtual ~HttpProxyClientSocketPool(); |
192 | 188 |
193 // ClientSocketPool implementation. | 189 // ClientSocketPool implementation. |
194 virtual int RequestSocket(const std::string& group_name, | 190 virtual int RequestSocket(const std::string& group_name, |
195 const void* connect_params, | 191 const void* connect_params, |
196 RequestPriority priority, | 192 RequestPriority priority, |
197 ClientSocketHandle* handle, | 193 ClientSocketHandle* handle, |
198 const CompletionCallback& callback, | 194 const CompletionCallback& callback, |
199 const BoundNetLog& net_log) OVERRIDE; | 195 const BoundNetLog& net_log) OVERRIDE; |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
240 virtual void RemoveHigherLayeredPool(HigherLayeredPool* higher_pool) OVERRIDE; | 236 virtual void RemoveHigherLayeredPool(HigherLayeredPool* higher_pool) OVERRIDE; |
241 | 237 |
242 // HigherLayeredPool implementation. | 238 // HigherLayeredPool implementation. |
243 virtual bool CloseOneIdleConnection() OVERRIDE; | 239 virtual bool CloseOneIdleConnection() OVERRIDE; |
244 | 240 |
245 private: | 241 private: |
246 typedef ClientSocketPoolBase<HttpProxySocketParams> PoolBase; | 242 typedef ClientSocketPoolBase<HttpProxySocketParams> PoolBase; |
247 | 243 |
248 class HttpProxyConnectJobFactory : public PoolBase::ConnectJobFactory { | 244 class HttpProxyConnectJobFactory : public PoolBase::ConnectJobFactory { |
249 public: | 245 public: |
250 HttpProxyConnectJobFactory( | 246 HttpProxyConnectJobFactory(TransportClientSocketPool* transport_pool, |
251 TransportClientSocketPool* transport_pool, | 247 SSLClientSocketPool* ssl_pool, |
252 SSLClientSocketPool* ssl_pool, | 248 HostResolver* host_resolver, |
253 HostResolver* host_resolver, | 249 NetLog* net_log); |
254 NetLog* net_log); | |
255 | 250 |
256 // ClientSocketPoolBase::ConnectJobFactory methods. | 251 // ClientSocketPoolBase::ConnectJobFactory methods. |
257 virtual scoped_ptr<ConnectJob> NewConnectJob( | 252 virtual scoped_ptr<ConnectJob> NewConnectJob( |
258 const std::string& group_name, | 253 const std::string& group_name, |
259 const PoolBase::Request& request, | 254 const PoolBase::Request& request, |
260 ConnectJob::Delegate* delegate) const OVERRIDE; | 255 ConnectJob::Delegate* delegate) const OVERRIDE; |
261 | 256 |
262 virtual base::TimeDelta ConnectionTimeout() const OVERRIDE; | 257 virtual base::TimeDelta ConnectionTimeout() const OVERRIDE; |
263 | 258 |
264 private: | 259 private: |
265 TransportClientSocketPool* const transport_pool_; | 260 TransportClientSocketPool* const transport_pool_; |
266 SSLClientSocketPool* const ssl_pool_; | 261 SSLClientSocketPool* const ssl_pool_; |
267 HostResolver* const host_resolver_; | 262 HostResolver* const host_resolver_; |
268 NetLog* net_log_; | 263 NetLog* net_log_; |
269 base::TimeDelta timeout_; | 264 base::TimeDelta timeout_; |
270 | 265 |
271 DISALLOW_COPY_AND_ASSIGN(HttpProxyConnectJobFactory); | 266 DISALLOW_COPY_AND_ASSIGN(HttpProxyConnectJobFactory); |
272 }; | 267 }; |
273 | 268 |
274 TransportClientSocketPool* const transport_pool_; | 269 TransportClientSocketPool* const transport_pool_; |
275 SSLClientSocketPool* const ssl_pool_; | 270 SSLClientSocketPool* const ssl_pool_; |
276 PoolBase base_; | 271 PoolBase base_; |
277 | 272 |
278 DISALLOW_COPY_AND_ASSIGN(HttpProxyClientSocketPool); | 273 DISALLOW_COPY_AND_ASSIGN(HttpProxyClientSocketPool); |
279 }; | 274 }; |
280 | 275 |
281 } // namespace net | 276 } // namespace net |
282 | 277 |
283 #endif // NET_HTTP_HTTP_PROXY_CLIENT_SOCKET_POOL_H_ | 278 #endif // NET_HTTP_HTTP_PROXY_CLIENT_SOCKET_POOL_H_ |
OLD | NEW |