| // Copyright (c) 2012 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 JINGLE_GLUE_RESOLVING_CLIENT_SOCKET_FACTORY_H_ |
| #define JINGLE_GLUE_RESOLVING_CLIENT_SOCKET_FACTORY_H_ |
| |
| #include "base/memory/scoped_ptr.h" |
| |
| namespace net { |
| class ClientSocketHandle; |
| class HostPortPair; |
| class SSLClientSocket; |
| class StreamSocket; |
| } // namespace net |
| |
| // TODO(sanjeevr): Move this to net/ |
| |
| namespace jingle_glue { |
| |
| // Interface for a ClientSocketFactory that creates ClientSockets that can |
| // resolve host names and tunnel through proxies. |
| class ResolvingClientSocketFactory { |
| public: |
| virtual ~ResolvingClientSocketFactory() { } |
| // Method to create a transport socket using a HostPortPair. |
| virtual scoped_ptr<net::StreamSocket> CreateTransportClientSocket( |
| const net::HostPortPair& host_and_port) = 0; |
| |
| virtual scoped_ptr<net::SSLClientSocket> CreateSSLClientSocket( |
| scoped_ptr<net::ClientSocketHandle> transport_socket, |
| const net::HostPortPair& host_and_port) = 0; |
| }; |
| |
| } // namespace jingle_glue |
| |
| #endif // JINGLE_GLUE_RESOLVING_CLIENT_SOCKET_FACTORY_H_ |