// Copyright (c) 2010 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_NOTIFIER_BASE_XMPP_CLIENT_SOCKET_FACTORY_H_ #define JINGLE_NOTIFIER_BASE_XMPP_CLIENT_SOCKET_FACTORY_H_ #include <string> #include "net/socket/client_socket_factory.h" namespace net { class DnsCertProvenanceChecker; class HostPortPair; class SSLHostInfo; } namespace notifier { class XmppClientSocketFactory : public net::ClientSocketFactory { public: // Does not take ownership of |client_socket_factory|. XmppClientSocketFactory( net::ClientSocketFactory* client_socket_factory, bool use_fake_ssl_client_socket); virtual ~XmppClientSocketFactory(); // net::ClientSocketFactory implementation. virtual net::ClientSocket* CreateTCPClientSocket( const net::AddressList& addresses, net::NetLog* net_log, const net::NetLog::Source& source); virtual net::SSLClientSocket* CreateSSLClientSocket( net::ClientSocketHandle* transport_socket, const net::HostPortPair& host_and_port, const net::SSLConfig& ssl_config, net::SSLHostInfo* ssl_host_info, net::CertVerifier* cert_verifier, net::DnsCertProvenanceChecker* dns_cert_checker); virtual void ClearSSLSessionCache(); private: net::ClientSocketFactory* const client_socket_factory_; const bool use_fake_ssl_client_socket_; DISALLOW_COPY_AND_ASSIGN(XmppClientSocketFactory); }; } // namespace notifier #endif // JINGLE_NOTIFIER_BASE_XMPP_CLIENT_SOCKET_FACTORY_H_