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