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_XMPP_CLIENT_SOCKET_FACTORY_H_
      6 #define JINGLE_GLUE_XMPP_CLIENT_SOCKET_FACTORY_H_
      7 
      8 #include <string>
      9 
     10 #include "base/compiler_specific.h"
     11 #include "base/memory/ref_counted.h"
     12 #include "jingle/glue/resolving_client_socket_factory.h"
     13 #include "net/ssl/ssl_config_service.h"
     14 
     15 namespace net {
     16 class ClientSocketFactory;
     17 class ClientSocketHandle;
     18 class HostPortPair;
     19 class SSLClientSocket;
     20 class StreamSocket;
     21 class URLRequestContextGetter;
     22 }  // namespace net
     23 
     24 namespace jingle_glue {
     25 
     26 class XmppClientSocketFactory : public ResolvingClientSocketFactory {
     27  public:
     28   // Does not take ownership of |client_socket_factory|.
     29   XmppClientSocketFactory(
     30       net::ClientSocketFactory* client_socket_factory,
     31       const net::SSLConfig& ssl_config,
     32       const scoped_refptr<net::URLRequestContextGetter>& request_context_getter,
     33       bool use_fake_ssl_client_socket);
     34 
     35   virtual ~XmppClientSocketFactory();
     36 
     37   // ResolvingClientSocketFactory implementation.
     38   virtual scoped_ptr<net::StreamSocket> CreateTransportClientSocket(
     39       const net::HostPortPair& host_and_port) OVERRIDE;
     40 
     41   virtual scoped_ptr<net::SSLClientSocket> CreateSSLClientSocket(
     42       scoped_ptr<net::ClientSocketHandle> transport_socket,
     43       const net::HostPortPair& host_and_port) OVERRIDE;
     44 
     45  private:
     46   net::ClientSocketFactory* const client_socket_factory_;
     47   scoped_refptr<net::URLRequestContextGetter> request_context_getter_;
     48   const net::SSLConfig ssl_config_;
     49   const bool use_fake_ssl_client_socket_;
     50 
     51   DISALLOW_COPY_AND_ASSIGN(XmppClientSocketFactory);
     52 };
     53 
     54 }  // namespace jingle_glue
     55 
     56 #endif  // JINGLE_GLUE_XMPP_CLIENT_SOCKET_FACTORY_H_
     57