blob: f8f3d5987ad3f4b6055b3114fa320edb5d9b0f4b [file] [log] [blame]
QUICHE teama6ef0a62019-03-07 20:34:33 -05001// Copyright (c) 2013 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_PACKET_CREATOR_PEER_H_
6#define QUICHE_QUIC_TEST_TOOLS_QUIC_PACKET_CREATOR_PEER_H_
7
QUICHE teama6ef0a62019-03-07 20:34:33 -05008#include "net/third_party/quiche/src/quic/core/quic_packets.h"
9
10namespace quic {
11class QuicFramer;
12class QuicPacketCreator;
13
14namespace test {
15
16class QuicPacketCreatorPeer {
17 public:
18 QuicPacketCreatorPeer() = delete;
19
20 static bool SendVersionInPacket(QuicPacketCreator* creator);
21
22 static void SetSendVersionInPacket(QuicPacketCreator* creator,
23 bool send_version_in_packet);
24 static void SetPacketNumberLength(
25 QuicPacketCreator* creator,
26 QuicPacketNumberLength packet_number_length);
27 static QuicPacketNumberLength GetPacketNumberLength(
28 QuicPacketCreator* creator);
29 static QuicVariableLengthIntegerLength GetRetryTokenLengthLength(
30 QuicPacketCreator* creator);
31 static QuicVariableLengthIntegerLength GetLengthLength(
32 QuicPacketCreator* creator);
33 static void SetPacketNumber(QuicPacketCreator* creator, uint64_t s);
34 static void ClearPacketNumber(QuicPacketCreator* creator);
35 static void FillPacketHeader(QuicPacketCreator* creator,
36 QuicPacketHeader* header);
37 static void CreateStreamFrame(QuicPacketCreator* creator,
38 QuicStreamId id,
QUICHE teamf08778a2019-03-14 08:10:26 -070039 size_t data_length,
QUICHE teama6ef0a62019-03-07 20:34:33 -050040 QuicStreamOffset offset,
41 bool fin,
42 QuicFrame* frame);
QUICHE teamdc41bf12019-03-20 12:58:42 -070043 static bool CreateCryptoFrame(QuicPacketCreator* creator,
44 EncryptionLevel level,
45 size_t write_length,
46 QuicStreamOffset offset,
47 QuicFrame* frame);
QUICHE teama6ef0a62019-03-07 20:34:33 -050048 static SerializedPacket SerializeAllFrames(QuicPacketCreator* creator,
49 const QuicFrames& frames,
50 char* buffer,
51 size_t buffer_len);
52 static OwningSerializedPacketPointer SerializeConnectivityProbingPacket(
53 QuicPacketCreator* creator);
54 static OwningSerializedPacketPointer
55 SerializePathChallengeConnectivityProbingPacket(QuicPacketCreator* creator,
56 QuicPathFrameBuffer* payload);
57
58 static EncryptionLevel GetEncryptionLevel(QuicPacketCreator* creator);
59 static QuicFramer* framer(QuicPacketCreator* creator);
nharperd43f1d62019-07-01 15:18:20 -070060 static void EnableGetPacketHeaderSizeBugFix(QuicPacketCreator* creator);
QUICHE teama6ef0a62019-03-07 20:34:33 -050061};
62
63} // namespace test
64
65} // namespace quic
66
67#endif // QUICHE_QUIC_TEST_TOOLS_QUIC_PACKET_CREATOR_PEER_H_