blob: f97b264262e34cd68fab5a90488f193cbbcf5d83 [file] [log] [blame]
QUICHE teama6ef0a62019-03-07 20:34:33 -05001// 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
renjietang3a1bb802019-06-11 10:42:41 -07008#include "net/third_party/quiche/src/quic/core/http/quic_receive_control_stream.h"
renjietang7498c8c2019-07-02 19:28:42 -07009#include "net/third_party/quiche/src/quic/core/http/quic_send_control_stream.h"
QUICHE teama6ef0a62019-03-07 20:34:33 -050010#include "net/third_party/quiche/src/quic/core/quic_packets.h"
11#include "net/third_party/quiche/src/quic/core/quic_write_blocked_list.h"
12#include "net/third_party/quiche/src/spdy/core/spdy_framer.h"
13
14namespace quic {
15
16class QuicHeadersStream;
17class QuicSpdySession;
18class QuicHpackDebugVisitor;
19
20namespace test {
21
22class QuicSpdySessionPeer {
23 public:
24 QuicSpdySessionPeer() = delete;
25
26 static QuicHeadersStream* GetHeadersStream(QuicSpdySession* session);
renjietangfbeb5bf2019-04-19 15:06:20 -070027 static void SetUnownedHeadersStream(QuicSpdySession* session,
28 QuicHeadersStream* headers_stream);
QUICHE teama6ef0a62019-03-07 20:34:33 -050029 static const spdy::SpdyFramer& GetSpdyFramer(QuicSpdySession* session);
30 static void SetHpackEncoderDebugVisitor(
31 QuicSpdySession* session,
32 std::unique_ptr<QuicHpackDebugVisitor> visitor);
33 static void SetHpackDecoderDebugVisitor(
34 QuicSpdySession* session,
35 std::unique_ptr<QuicHpackDebugVisitor> visitor);
bnc30d610c2019-07-08 18:39:59 -070036 // Must be called before Initialize().
37 static void SetMaxInboundHeaderListSize(QuicSpdySession* session,
38 size_t max_inbound_header_size);
QUICHE teama6ef0a62019-03-07 20:34:33 -050039 static size_t WriteHeadersOnHeadersStream(
40 QuicSpdySession* session,
41 QuicStreamId id,
42 spdy::SpdyHeaderBlock headers,
43 bool fin,
44 spdy::SpdyPriority priority,
45 QuicReferenceCountedPointer<QuicAckListenerInterface> ack_listener);
renjietangfee2cc32019-04-05 11:32:07 -070046 // |session| can't be nullptr.
47 static QuicStreamId GetNextOutgoingUnidirectionalStreamId(
48 QuicSpdySession* session);
renjietang3a1bb802019-06-11 10:42:41 -070049 static QuicReceiveControlStream* GetReceiveControlStream(
50 QuicSpdySession* session);
renjietang7498c8c2019-07-02 19:28:42 -070051 static QuicSendControlStream* GetSendControlStream(QuicSpdySession* session);
QUICHE teama6ef0a62019-03-07 20:34:33 -050052};
53
54} // namespace test
55
56} // namespace quic
57
58#endif // QUICHE_QUIC_TEST_TOOLS_QUIC_SPDY_SESSION_PEER_H_