1 // Copyright (c) 2012 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 JINGLE_GLUE_RESOLVING_CLIENT_SOCKET_FACTORY_H_ 6 #define JINGLE_GLUE_RESOLVING_CLIENT_SOCKET_FACTORY_H_ 7 8 9 namespace net { 10 class ClientSocketHandle; 11 class HostPortPair; 12 class SSLClientSocket; 13 class StreamSocket; 14 } // namespace net 15 16 // TODO(sanjeevr): Move this to net/ 17 18 namespace jingle_glue { 19 20 // Interface for a ClientSocketFactory that creates ClientSockets that can 21 // resolve host names and tunnel through proxies. 22 class ResolvingClientSocketFactory { 23 public: 24 virtual ~ResolvingClientSocketFactory() { } 25 // Method to create a transport socket using a HostPortPair. 26 virtual net::StreamSocket* CreateTransportClientSocket( 27 const net::HostPortPair& host_and_port) = 0; 28 29 virtual net::SSLClientSocket* CreateSSLClientSocket( 30 net::ClientSocketHandle* transport_socket, 31 const net::HostPortPair& host_and_port) = 0; 32 }; 33 34 } // namespace jingle_glue 35 36 #endif // JINGLE_GLUE_RESOLVING_CLIENT_SOCKET_FACTORY_H_ 37