// Copyright (c) 2011 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_SOCKET_MOCK_CLIENT_SOCKET_POOL_MANAGER_H_ #define NET_SOCKET_MOCK_CLIENT_SOCKET_POOL_MANAGER_H_ #include "base/macros.h" #include "net/socket/client_socket_pool_manager.h" #include "net/socket/client_socket_pool_manager_impl.h" namespace net { class MockClientSocketPoolManager : public ClientSocketPoolManager { public: MockClientSocketPoolManager(); ~MockClientSocketPoolManager() override; // Sets "override" socket pools that get used instead. void SetTransportSocketPool(TransportClientSocketPool* pool); void SetSSLSocketPool(SSLClientSocketPool* pool); void SetSocketPoolForSOCKSProxy(const HostPortPair& socks_proxy, SOCKSClientSocketPool* pool); void SetSocketPoolForHTTPProxy(const HostPortPair& http_proxy, HttpProxyClientSocketPool* pool); void SetSocketPoolForSSLWithProxy(const HostPortPair& proxy_server, SSLClientSocketPool* pool); // ClientSocketPoolManager methods: void FlushSocketPoolsWithError(int error) override; void CloseIdleSockets() override; TransportClientSocketPool* GetTransportSocketPool() override; SSLClientSocketPool* GetSSLSocketPool() override; SOCKSClientSocketPool* GetSocketPoolForSOCKSProxy( const HostPortPair& socks_proxy) override; HttpProxyClientSocketPool* GetSocketPoolForHTTPProxy( const HostPortPair& http_proxy) override; SSLClientSocketPool* GetSocketPoolForSSLWithProxy( const HostPortPair& proxy_server) override; scoped_ptr<base::Value> SocketPoolInfoToValue() const override; private: typedef internal::OwnedPoolMap<HostPortPair, TransportClientSocketPool*> TransportSocketPoolMap; typedef internal::OwnedPoolMap<HostPortPair, SOCKSClientSocketPool*> SOCKSSocketPoolMap; typedef internal::OwnedPoolMap<HostPortPair, HttpProxyClientSocketPool*> HTTPProxySocketPoolMap; typedef internal::OwnedPoolMap<HostPortPair, SSLClientSocketPool*> SSLSocketPoolMap; scoped_ptr<TransportClientSocketPool> transport_socket_pool_; scoped_ptr<SSLClientSocketPool> ssl_socket_pool_; SOCKSSocketPoolMap socks_socket_pools_; HTTPProxySocketPoolMap http_proxy_socket_pools_; SSLSocketPoolMap ssl_socket_pools_for_proxies_; DISALLOW_COPY_AND_ASSIGN(MockClientSocketPoolManager); }; } // namespace net #endif // NET_SOCKET_MOCK_CLIENT_SOCKET_POOL_MANAGER_H_