blob: 18004377abb3392b76980f2c45e3a49315f057d7 [file] [log] [blame]
[email protected]a42dbd142011-11-17 16:42:021// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef NET_SOCKET_MOCK_CLIENT_SOCKET_POOL_MANAGER_H_
6#define NET_SOCKET_MOCK_CLIENT_SOCKET_POOL_MANAGER_H_
[email protected]a42dbd142011-11-17 16:42:027
xunjieli9f8c5fb52016-12-07 22:59:338#include <string>
9
Avi Drissman13fc8932015-12-20 04:40:4610#include "base/macros.h"
[email protected]a42dbd142011-11-17 16:42:0211#include "net/socket/client_socket_pool_manager.h"
12#include "net/socket/client_socket_pool_manager_impl.h"
13
14namespace net {
15
16class MockClientSocketPoolManager : public ClientSocketPoolManager {
17 public:
18 MockClientSocketPoolManager();
dchengb03027d2014-10-21 12:00:2019 ~MockClientSocketPoolManager() override;
[email protected]a42dbd142011-11-17 16:42:0220
21 // Sets "override" socket pools that get used instead.
22 void SetTransportSocketPool(TransportClientSocketPool* pool);
23 void SetSSLSocketPool(SSLClientSocketPool* pool);
24 void SetSocketPoolForSOCKSProxy(const HostPortPair& socks_proxy,
aviadef3442016-10-03 18:50:3925 std::unique_ptr<SOCKSClientSocketPool> pool);
26 void SetSocketPoolForHTTPProxy(
27 const HostPortPair& http_proxy,
28 std::unique_ptr<HttpProxyClientSocketPool> pool);
[email protected]a42dbd142011-11-17 16:42:0229 void SetSocketPoolForSSLWithProxy(const HostPortPair& proxy_server,
aviadef3442016-10-03 18:50:3930 std::unique_ptr<SSLClientSocketPool> pool);
[email protected]a42dbd142011-11-17 16:42:0231
32 // ClientSocketPoolManager methods:
dchengb03027d2014-10-21 12:00:2033 void FlushSocketPoolsWithError(int error) override;
34 void CloseIdleSockets() override;
35 TransportClientSocketPool* GetTransportSocketPool() override;
36 SSLClientSocketPool* GetSSLSocketPool() override;
37 SOCKSClientSocketPool* GetSocketPoolForSOCKSProxy(
mostynbba063d6032014-10-09 11:01:1338 const HostPortPair& socks_proxy) override;
dchengb03027d2014-10-21 12:00:2039 HttpProxyClientSocketPool* GetSocketPoolForHTTPProxy(
mostynbba063d6032014-10-09 11:01:1340 const HostPortPair& http_proxy) override;
dchengb03027d2014-10-21 12:00:2041 SSLClientSocketPool* GetSocketPoolForSSLWithProxy(
mostynbba063d6032014-10-09 11:01:1342 const HostPortPair& proxy_server) override;
danakj655b66c2016-04-16 00:51:3843 std::unique_ptr<base::Value> SocketPoolInfoToValue() const override;
xunjieli9f8c5fb52016-12-07 22:59:3344 void DumpMemoryStats(
45 base::trace_event::ProcessMemoryDump* pmd,
46 const std::string& parent_dump_absolute_name) const override;
[email protected]a42dbd142011-11-17 16:42:0247
48 private:
aviadef3442016-10-03 18:50:3949 using TransportSocketPoolMap =
50 std::map<HostPortPair, std::unique_ptr<TransportClientSocketPool>>;
51 using SOCKSSocketPoolMap =
52 std::map<HostPortPair, std::unique_ptr<SOCKSClientSocketPool>>;
53 using HTTPProxySocketPoolMap =
54 std::map<HostPortPair, std::unique_ptr<HttpProxyClientSocketPool>>;
55 using SSLSocketPoolMap =
56 std::map<HostPortPair, std::unique_ptr<SSLClientSocketPool>>;
[email protected]a42dbd142011-11-17 16:42:0257
danakj655b66c2016-04-16 00:51:3858 std::unique_ptr<TransportClientSocketPool> transport_socket_pool_;
59 std::unique_ptr<SSLClientSocketPool> ssl_socket_pool_;
[email protected]a42dbd142011-11-17 16:42:0260 SOCKSSocketPoolMap socks_socket_pools_;
61 HTTPProxySocketPoolMap http_proxy_socket_pools_;
62 SSLSocketPoolMap ssl_socket_pools_for_proxies_;
63
64 DISALLOW_COPY_AND_ASSIGN(MockClientSocketPoolManager);
65};
66
67} // namespace net
68
69#endif // NET_SOCKET_MOCK_CLIENT_SOCKET_POOL_MANAGER_H_