1 // Copyright (c) 2015 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 QUICHE_QUIC_TEST_TOOLS_QUIC_SPDY_SESSION_PEER_H_ 6 #define QUICHE_QUIC_TEST_TOOLS_QUIC_SPDY_SESSION_PEER_H_ 7 8 #include "quiche/quic/core/http/quic_receive_control_stream.h" 9 #include "quiche/quic/core/http/quic_send_control_stream.h" 10 #include "quiche/quic/core/http/quic_spdy_session.h" 11 #include "quiche/quic/core/qpack/qpack_receive_stream.h" 12 #include "quiche/quic/core/qpack/qpack_send_stream.h" 13 #include "quiche/quic/core/quic_packets.h" 14 #include "quiche/quic/core/quic_write_blocked_list.h" 15 #include "quiche/spdy/core/http2_header_block.h" 16 #include "quiche/spdy/core/spdy_framer.h" 17 18 namespace quic { 19 20 class QuicHeadersStream; 21 22 namespace test { 23 24 class QuicSpdySessionPeer { 25 public: 26 QuicSpdySessionPeer() = delete; 27 28 static QuicHeadersStream* GetHeadersStream(QuicSpdySession* session); 29 static void SetHeadersStream(QuicSpdySession* session, 30 QuicHeadersStream* headers_stream); 31 static spdy::SpdyFramer* GetSpdyFramer(QuicSpdySession* session); 32 // Must be called before Initialize(). 33 static void SetMaxInboundHeaderListSize(QuicSpdySession* session, 34 size_t max_inbound_header_size); 35 static size_t WriteHeadersOnHeadersStream( 36 QuicSpdySession* session, QuicStreamId id, spdy::Http2HeaderBlock headers, 37 bool fin, const spdy::SpdyStreamPrecedence& precedence, 38 quiche::QuicheReferenceCountedPointer<QuicAckListenerInterface> 39 ack_listener); 40 // |session| can't be nullptr. 41 static QuicStreamId GetNextOutgoingUnidirectionalStreamId( 42 QuicSpdySession* session); 43 static QuicReceiveControlStream* GetReceiveControlStream( 44 QuicSpdySession* session); 45 static QuicSendControlStream* GetSendControlStream(QuicSpdySession* session); 46 static QpackSendStream* GetQpackDecoderSendStream(QuicSpdySession* session); 47 static QpackSendStream* GetQpackEncoderSendStream(QuicSpdySession* session); 48 static QpackReceiveStream* GetQpackDecoderReceiveStream( 49 QuicSpdySession* session); 50 static QpackReceiveStream* GetQpackEncoderReceiveStream( 51 QuicSpdySession* session); 52 static void SetHttpDatagramSupport(QuicSpdySession* session, 53 HttpDatagramSupport http_datagram_support); 54 static HttpDatagramSupport LocalHttpDatagramSupport(QuicSpdySession* session); 55 static void EnableWebTransport(QuicSpdySession* session); 56 }; 57 58 } // namespace test 59 60 } // namespace quic 61 62 #endif // QUICHE_QUIC_TEST_TOOLS_QUIC_SPDY_SESSION_PEER_H_ 63