• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 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_SENT_PACKET_MANAGER_PEER_H_
6 #define QUICHE_QUIC_TEST_TOOLS_QUIC_SENT_PACKET_MANAGER_PEER_H_
7 
8 #include "quiche/quic/core/quic_packets.h"
9 #include "quiche/quic/core/quic_sent_packet_manager.h"
10 
11 namespace quic {
12 
13 class SendAlgorithmInterface;
14 
15 namespace test {
16 
17 class QuicSentPacketManagerPeer {
18  public:
19   QuicSentPacketManagerPeer() = delete;
20 
21 
22   static void SetPerspective(QuicSentPacketManager* sent_packet_manager,
23                              Perspective perspective);
24 
25   static SendAlgorithmInterface* GetSendAlgorithm(
26       const QuicSentPacketManager& sent_packet_manager);
27 
28   static void SetSendAlgorithm(QuicSentPacketManager* sent_packet_manager,
29                                SendAlgorithmInterface* send_algorithm);
30 
31   static const LossDetectionInterface* GetLossAlgorithm(
32       QuicSentPacketManager* sent_packet_manager);
33 
34   static void SetLossAlgorithm(QuicSentPacketManager* sent_packet_manager,
35                                LossDetectionInterface* loss_detector);
36 
37   static RttStats* GetRttStats(QuicSentPacketManager* sent_packet_manager);
38 
39   // Returns true if |packet_number| is a retransmission of a packet.
40   static bool IsRetransmission(QuicSentPacketManager* sent_packet_manager,
41                                uint64_t packet_number);
42 
43   static void MarkForRetransmission(QuicSentPacketManager* sent_packet_manager,
44                                     uint64_t packet_number,
45                                     TransmissionType transmission_type);
46 
47   static size_t GetNumRetransmittablePackets(
48       const QuicSentPacketManager* sent_packet_manager);
49 
50   static void SetConsecutivePtoCount(QuicSentPacketManager* sent_packet_manager,
51                                      size_t count);
52 
53   static QuicSustainedBandwidthRecorder& GetBandwidthRecorder(
54       QuicSentPacketManager* sent_packet_manager);
55 
56   static void SetUsingPacing(QuicSentPacketManager* sent_packet_manager,
57                              bool using_pacing);
58 
59   static bool UsingPacing(const QuicSentPacketManager* sent_packet_manager);
60 
61   static bool HasRetransmittableFrames(
62       QuicSentPacketManager* sent_packet_manager, uint64_t packet_number);
63 
64   static QuicUnackedPacketMap* GetUnackedPacketMap(
65       QuicSentPacketManager* sent_packet_manager);
66 
67   static void DisablePacerBursts(QuicSentPacketManager* sent_packet_manager);
68 
69   static int GetPacerInitialBurstSize(
70       QuicSentPacketManager* sent_packet_manager);
71 
72   static void SetNextPacedPacketTime(QuicSentPacketManager* sent_packet_manager,
73                                      QuicTime time);
74 
75   static int GetReorderingShift(QuicSentPacketManager* sent_packet_manager);
76 
77   static bool AdaptiveReorderingThresholdEnabled(
78       QuicSentPacketManager* sent_packet_manager);
79 
80   static bool AdaptiveTimeThresholdEnabled(
81       QuicSentPacketManager* sent_packet_manager);
82 
83   static bool UsePacketThresholdForRuntPackets(
84       QuicSentPacketManager* sent_packet_manager);
85 
86   static int GetNumPtosForPathDegrading(
87       QuicSentPacketManager* sent_packet_manager);
88 
89   static QuicEcnCounts* GetPeerEcnCounts(
90       QuicSentPacketManager* sent_packet_manager, PacketNumberSpace space);
91 };
92 
93 }  // namespace test
94 
95 }  // namespace quic
96 
97 #endif  // QUICHE_QUIC_TEST_TOOLS_QUIC_SENT_PACKET_MANAGER_PEER_H_
98