From 87bfa3fcdb3d47853c4ac9de1240707a3a03f150 Mon Sep 17 00:00:00 2001 From: "willchan@chromium.org" <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> Date: Thu, 30 Sep 2010 14:54:56 +0000 Subject: Reland 61015 (unnecessary revert due to flaky build) - Stop refcounting SpdySessionPool. BUG=57343 TEST=none Review URL: http://codereview.chromium.org/3602001 TBR=willchan@chromium.org Review URL: http://codereview.chromium.org/3541005 TBR=willchan@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61063 0039d316-1c4b-4281-b951-d872f2087c98 --- net/http/http_network_session_peer.h | 78 ++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 net/http/http_network_session_peer.h (limited to 'net/http/http_network_session_peer.h') diff --git a/net/http/http_network_session_peer.h b/net/http/http_network_session_peer.h new file mode 100644 index 0000000..13f3fa7 --- /dev/null +++ b/net/http/http_network_session_peer.h @@ -0,0 +1,78 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef NET_HTTP_HTTP_NETWORK_SESSION_PEER_H_ +#define NET_HTTP_HTTP_NETWORK_SESSION_PEER_H_ +#pragma once + +#include "net/http/http_network_session.h" +#include "net/http/http_proxy_client_socket_pool.h" +#include "net/socket/socks_client_socket_pool.h" +#include "net/socket/ssl_client_socket_pool.h" + +namespace net { + +class HttpNetworkSessionPeer { + public: + explicit HttpNetworkSessionPeer( + const scoped_refptr<HttpNetworkSession>& session) + : session_(session) {} + + void SetTCPSocketPool(TCPClientSocketPool* pool) { + session_->socket_pool_manager_.tcp_socket_pool_.reset(pool); + } + + void SetSocketPoolForSOCKSProxy( + const HostPortPair& socks_proxy, + SOCKSClientSocketPool* pool) { + ClientSocketPoolManager* socket_pool_manager = + &session_->socket_pool_manager_; + + // Call through the public interface to force initialization of the + // wrapped socket pools. + delete socket_pool_manager->GetSocketPoolForSOCKSProxy(socks_proxy); + socket_pool_manager->socks_socket_pools_[socks_proxy] = pool; + } + + void SetSocketPoolForHTTPProxy( + const HostPortPair& http_proxy, + HttpProxyClientSocketPool* pool) { + ClientSocketPoolManager* socket_pool_manager = + &session_->socket_pool_manager_; + + // Call through the public interface to force initialization of the + // wrapped socket pools. + delete socket_pool_manager->GetSocketPoolForHTTPProxy(http_proxy); + socket_pool_manager->http_proxy_socket_pools_[http_proxy] = pool; + } + + void SetSSLSocketPool(SSLClientSocketPool* pool) { + session_->socket_pool_manager_.ssl_socket_pool_.reset(pool); + } + + void SetSocketPoolForSSLWithProxy( + const HostPortPair& proxy_host, + SSLClientSocketPool* pool) { + ClientSocketPoolManager* socket_pool_manager = + &session_->socket_pool_manager_; + + // Call through the public interface to force initialization of the + // wrapped socket pools. + delete socket_pool_manager->GetSocketPoolForSSLWithProxy(proxy_host); + socket_pool_manager->ssl_socket_pools_for_proxies_[proxy_host] = pool; + } + + void SetProxyService(ProxyService* proxy_service) { + session_->proxy_service_ = proxy_service; + } + + private: + const scoped_refptr<HttpNetworkSession> session_; + + DISALLOW_COPY_AND_ASSIGN(HttpNetworkSessionPeer); +}; + +} // namespace net + +#endif // NET_HTTP_HTTP_NETWORK_SESSION_PEER_H_ -- cgit v1.1