diff options
Diffstat (limited to 'jingle/glue/xmpp_client_socket_factory.h')
-rw-r--r-- | jingle/glue/xmpp_client_socket_factory.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/jingle/glue/xmpp_client_socket_factory.h b/jingle/glue/xmpp_client_socket_factory.h new file mode 100644 index 0000000..f03a04e --- /dev/null +++ b/jingle/glue/xmpp_client_socket_factory.h @@ -0,0 +1,56 @@ +// 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_XMPP_CLIENT_SOCKET_FACTORY_H_ +#define JINGLE_GLUE_XMPP_CLIENT_SOCKET_FACTORY_H_ + +#include <string> + +#include "base/compiler_specific.h" +#include "base/memory/ref_counted.h" +#include "jingle/glue/resolving_client_socket_factory.h" +#include "net/base/ssl_config_service.h" + +namespace net { +class ClientSocketFactory; +class ClientSocketHandle; +class HostPortPair; +class SSLClientSocket; +class StreamSocket; +class URLRequestContextGetter; +} // namespace net + +namespace jingle_glue { + +class XmppClientSocketFactory : public ResolvingClientSocketFactory { + public: + // Does not take ownership of |client_socket_factory|. + XmppClientSocketFactory( + net::ClientSocketFactory* client_socket_factory, + const net::SSLConfig& ssl_config, + const scoped_refptr<net::URLRequestContextGetter>& request_context_getter, + bool use_fake_ssl_client_socket); + + virtual ~XmppClientSocketFactory(); + + // ResolvingClientSocketFactory implementation. + virtual net::StreamSocket* CreateTransportClientSocket( + const net::HostPortPair& host_and_port) OVERRIDE; + + virtual net::SSLClientSocket* CreateSSLClientSocket( + net::ClientSocketHandle* transport_socket, + const net::HostPortPair& host_and_port) OVERRIDE; + + private: + net::ClientSocketFactory* const client_socket_factory_; + scoped_refptr<net::URLRequestContextGetter> request_context_getter_; + const net::SSLConfig ssl_config_; + const bool use_fake_ssl_client_socket_; + + DISALLOW_COPY_AND_ASSIGN(XmppClientSocketFactory); +}; + +} // namespace jingle_glue + +#endif // JINGLE_GLUE_XMPP_CLIENT_SOCKET_FACTORY_H_ |