1 // 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 8 #include "quiche/quic/core/crypto/quic_random.h" 9 #include "quiche/quic/core/quic_packets.h" 10 11 namespace quic { 12 class QuicFramer; 13 class QuicPacketCreator; 14 15 namespace test { 16 17 class QuicPacketCreatorPeer { 18 public: 19 QuicPacketCreatorPeer() = delete; 20 21 static bool SendVersionInPacket(QuicPacketCreator* creator); 22 23 static void SetSendVersionInPacket(QuicPacketCreator* creator, 24 bool send_version_in_packet); 25 static void SetPacketNumberLength( 26 QuicPacketCreator* creator, QuicPacketNumberLength packet_number_length); 27 static QuicPacketNumberLength GetPacketNumberLength( 28 QuicPacketCreator* creator); 29 static quiche::QuicheVariableLengthIntegerLength GetRetryTokenLengthLength( 30 QuicPacketCreator* creator); 31 static quiche::QuicheVariableLengthIntegerLength GetLengthLength( 32 QuicPacketCreator* creator); 33 static void SetPacketNumber(QuicPacketCreator* creator, uint64_t s); 34 static void SetPacketNumber(QuicPacketCreator* creator, QuicPacketNumber num); 35 static void ClearPacketNumber(QuicPacketCreator* creator); 36 static void FillPacketHeader(QuicPacketCreator* creator, 37 QuicPacketHeader* header); 38 static void CreateStreamFrame(QuicPacketCreator* creator, QuicStreamId id, 39 size_t data_length, QuicStreamOffset offset, 40 bool fin, QuicFrame* frame); 41 static bool CreateCryptoFrame(QuicPacketCreator* creator, 42 EncryptionLevel level, size_t write_length, 43 QuicStreamOffset offset, QuicFrame* frame); 44 static SerializedPacket SerializeAllFrames(QuicPacketCreator* creator, 45 const QuicFrames& frames, 46 char* buffer, size_t buffer_len); 47 static std::unique_ptr<SerializedPacket> SerializeConnectivityProbingPacket( 48 QuicPacketCreator* creator); 49 static std::unique_ptr<SerializedPacket> 50 SerializePathChallengeConnectivityProbingPacket( 51 QuicPacketCreator* creator, const QuicPathFrameBuffer& payload); 52 53 static EncryptionLevel GetEncryptionLevel(QuicPacketCreator* creator); 54 static QuicFramer* framer(QuicPacketCreator* creator); 55 static std::string GetRetryToken(QuicPacketCreator* creator); 56 static QuicFrames& QueuedFrames(QuicPacketCreator* creator); 57 static void SetRandom(QuicPacketCreator* creator, QuicRandom* random); 58 }; 59 60 } // namespace test 61 62 } // namespace quic 63 64 #endif // QUICHE_QUIC_TEST_TOOLS_QUIC_PACKET_CREATOR_PEER_H_ 65