summaryrefslogtreecommitdiffstats
path: root/jingle/glue/xmpp_client_socket_factory.h
diff options
context:
space:
mode:
Diffstat (limited to 'jingle/glue/xmpp_client_socket_factory.h')
-rw-r--r--jingle/glue/xmpp_client_socket_factory.h56
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_