| // Copyright (c) 2018 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. |
| |
| #include "quic/tools/quic_simple_client_session.h" |
| |
| #include <utility> |
| |
| namespace quic { |
| |
| QuicSimpleClientSession::QuicSimpleClientSession( |
| const QuicConfig& config, const ParsedQuicVersionVector& supported_versions, |
| QuicConnection* connection, const QuicServerId& server_id, |
| QuicCryptoClientConfig* crypto_config, |
| QuicClientPushPromiseIndex* push_promise_index, bool drop_response_body) |
| : QuicSimpleClientSession(config, supported_versions, connection, server_id, |
| crypto_config, push_promise_index, |
| drop_response_body, |
| /*enable_web_transport=*/false, |
| /*use_datagram_contexts=*/false) {} |
| |
| QuicSimpleClientSession::QuicSimpleClientSession( |
| const QuicConfig& config, const ParsedQuicVersionVector& supported_versions, |
| QuicConnection* connection, const QuicServerId& server_id, |
| QuicCryptoClientConfig* crypto_config, |
| QuicClientPushPromiseIndex* push_promise_index, bool drop_response_body, |
| bool enable_web_transport, bool use_datagram_contexts) |
| : QuicSpdyClientSession(config, supported_versions, connection, server_id, |
| crypto_config, push_promise_index), |
| drop_response_body_(drop_response_body), |
| enable_web_transport_(enable_web_transport), |
| use_datagram_contexts_(use_datagram_contexts) {} |
| |
| std::unique_ptr<QuicSpdyClientStream> |
| QuicSimpleClientSession::CreateClientStream() { |
| return std::make_unique<QuicSimpleClientStream>( |
| GetNextOutgoingBidirectionalStreamId(), this, BIDIRECTIONAL, |
| drop_response_body_); |
| } |
| |
| bool QuicSimpleClientSession::ShouldNegotiateWebTransport() { |
| return enable_web_transport_; |
| } |
| |
| bool QuicSimpleClientSession::ShouldNegotiateDatagramContexts() { |
| return use_datagram_contexts_; |
| } |
| |
| HttpDatagramSupport QuicSimpleClientSession::LocalHttpDatagramSupport() { |
| return enable_web_transport_ ? HttpDatagramSupport::kDraft04 |
| : HttpDatagramSupport::kNone; |
| } |
| |
| } // namespace quic |