xref: /aosp_15_r20/external/cronet/net/third_party/quiche/src/quiche/quic/test_tools/quic_spdy_session_peer.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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