diff options
Diffstat (limited to 'chromium/net/third_party/quiche/src/quiche/quic/test_tools/quic_spdy_session_peer.cc')
-rw-r--r-- | chromium/net/third_party/quiche/src/quiche/quic/test_tools/quic_spdy_session_peer.cc | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/chromium/net/third_party/quiche/src/quiche/quic/test_tools/quic_spdy_session_peer.cc b/chromium/net/third_party/quiche/src/quiche/quic/test_tools/quic_spdy_session_peer.cc new file mode 100644 index 00000000000..62348cb4815 --- /dev/null +++ b/chromium/net/third_party/quiche/src/quiche/quic/test_tools/quic_spdy_session_peer.cc @@ -0,0 +1,119 @@ +// Copyright (c) 2015 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 "quiche/quic/test_tools/quic_spdy_session_peer.h" + +#include "quiche/quic/core/http/quic_spdy_session.h" +#include "quiche/quic/core/qpack/qpack_receive_stream.h" +#include "quiche/quic/core/quic_utils.h" +#include "quiche/quic/platform/api/quic_flags.h" +#include "quiche/quic/test_tools/quic_session_peer.h" +#include "quiche/common/platform/api/quiche_logging.h" + +namespace quic { +namespace test { + +// static +QuicHeadersStream* QuicSpdySessionPeer::GetHeadersStream( + QuicSpdySession* session) { + QUICHE_DCHECK(!VersionUsesHttp3(session->transport_version())); + return session->headers_stream(); +} + +void QuicSpdySessionPeer::SetHeadersStream(QuicSpdySession* session, + QuicHeadersStream* headers_stream) { + QUICHE_DCHECK(!VersionUsesHttp3(session->transport_version())); + for (auto& it : QuicSessionPeer::stream_map(session)) { + if (it.first == + QuicUtils::GetHeadersStreamId(session->transport_version())) { + it.second.reset(headers_stream); + session->headers_stream_ = static_cast<QuicHeadersStream*>(it.second.get()); + break; + } + } +} + +// static +spdy::SpdyFramer* QuicSpdySessionPeer::GetSpdyFramer(QuicSpdySession* session) { + return &session->spdy_framer_; +} + +void QuicSpdySessionPeer::SetMaxInboundHeaderListSize( + QuicSpdySession* session, size_t max_inbound_header_size) { + session->set_max_inbound_header_list_size(max_inbound_header_size); +} + +// static +size_t QuicSpdySessionPeer::WriteHeadersOnHeadersStream( + QuicSpdySession* session, QuicStreamId id, spdy::SpdyHeaderBlock headers, + bool fin, const spdy::SpdyStreamPrecedence& precedence, + quiche::QuicheReferenceCountedPointer<QuicAckListenerInterface> + ack_listener) { + return session->WriteHeadersOnHeadersStream( + id, std::move(headers), fin, precedence, std::move(ack_listener)); +} + +// static +QuicStreamId QuicSpdySessionPeer::GetNextOutgoingUnidirectionalStreamId( + QuicSpdySession* session) { + return session->GetNextOutgoingUnidirectionalStreamId(); +} + +// static +QuicReceiveControlStream* QuicSpdySessionPeer::GetReceiveControlStream( + QuicSpdySession* session) { + return session->receive_control_stream_; +} + +// static +QuicSendControlStream* QuicSpdySessionPeer::GetSendControlStream( + QuicSpdySession* session) { + return session->send_control_stream_; +} + +// static +QpackSendStream* QuicSpdySessionPeer::GetQpackDecoderSendStream( + QuicSpdySession* session) { + return session->qpack_decoder_send_stream_; +} + +// static +QpackSendStream* QuicSpdySessionPeer::GetQpackEncoderSendStream( + QuicSpdySession* session) { + return session->qpack_encoder_send_stream_; +} + +// static +QpackReceiveStream* QuicSpdySessionPeer::GetQpackDecoderReceiveStream( + QuicSpdySession* session) { + return session->qpack_decoder_receive_stream_; +} + +// static +QpackReceiveStream* QuicSpdySessionPeer::GetQpackEncoderReceiveStream( + QuicSpdySession* session) { + return session->qpack_encoder_receive_stream_; +} + +// static +void QuicSpdySessionPeer::SetHttpDatagramSupport( + QuicSpdySession* session, HttpDatagramSupport http_datagram_support) { + session->http_datagram_support_ = http_datagram_support; +} + +// static +HttpDatagramSupport QuicSpdySessionPeer::LocalHttpDatagramSupport( + QuicSpdySession* session) { + return session->LocalHttpDatagramSupport(); +} + +// static +void QuicSpdySessionPeer::EnableWebTransport(QuicSpdySession* session) { + QUICHE_DCHECK(session->WillNegotiateWebTransport()); + SetHttpDatagramSupport(session, HttpDatagramSupport::kDraft04); + session->peer_supports_webtransport_ = true; +} + +} // namespace test +} // namespace quic |