Home | History | Annotate | Download | only in glue
      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