1// Copyright (c) 2013 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 NET_QUIC_QUIC_CRYPTO_CLIENT_STREAM_FACTORY_H_
6#define NET_QUIC_QUIC_CRYPTO_CLIENT_STREAM_FACTORY_H_
7
8#include <string>
9
10#include "net/base/net_export.h"
11
12namespace net {
13
14class QuicClientSession;
15class QuicCryptoClientStream;
16class QuicServerId;
17
18// An interface used to instantiate QuicCryptoClientStream objects. Used to
19// facilitate testing code with mock implementations.
20class NET_EXPORT QuicCryptoClientStreamFactory {
21 public:
22  virtual ~QuicCryptoClientStreamFactory() {}
23
24  virtual QuicCryptoClientStream* CreateQuicCryptoClientStream(
25      const QuicServerId& server_id,
26      QuicClientSession* session,
27      QuicCryptoClientConfig* crypto_config) = 0;
28};
29
30}  // namespace net
31
32#endif  // NET_QUIC_QUIC_CRYPTO_CLIENT_STREAM_FACTORY_H_
33