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