diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-30 14:54:56 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-30 14:54:56 +0000 |
commit | 87bfa3fcdb3d47853c4ac9de1240707a3a03f150 (patch) | |
tree | bb733620b854e757a4f5846f54e92479761fbe81 /net/http/http_network_session_peer.h | |
parent | 414591b421922b06e50c99fd41cd6ed2033a21ad (diff) | |
download | chromium_src-87bfa3fcdb3d47853c4ac9de1240707a3a03f150.zip chromium_src-87bfa3fcdb3d47853c4ac9de1240707a3a03f150.tar.gz chromium_src-87bfa3fcdb3d47853c4ac9de1240707a3a03f150.tar.bz2 |
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
Diffstat (limited to 'net/http/http_network_session_peer.h')
-rw-r--r-- | net/http/http_network_session_peer.h | 78 |
1 files changed, 78 insertions, 0 deletions
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_ |