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.
5 #ifndef NET_QUIC_TEST_TOOLS_QUIC_SENT_PACKET_MANAGER_PEER_H_
6 #define NET_QUIC_TEST_TOOLS_QUIC_SENT_PACKET_MANAGER_PEER_H_
8 #include "net/quic/quic_protocol.h"
9 #include "net/quic/quic_sent_packet_manager.h"
13 class SendAlgorithmInterface;
17 class QuicSentPacketManagerPeer {
19 static void SetMaxTailLossProbes(
20 QuicSentPacketManager* sent_packet_manager, size_t max_tail_loss_probes);
22 static void SetSendAlgorithm(QuicSentPacketManager* sent_packet_manager,
23 SendAlgorithmInterface* send_algorithm);
25 static const LossDetectionInterface* GetLossAlgorithm(
26 QuicSentPacketManager* sent_packet_manager);
28 static void SetLossAlgorithm(QuicSentPacketManager* sent_packet_manager,
29 LossDetectionInterface* loss_detector);
31 static RttStats* GetRttStats(QuicSentPacketManager* sent_packet_manager);
33 static size_t GetNackCount(
34 const QuicSentPacketManager* sent_packet_manager,
35 QuicPacketSequenceNumber sequence_number);
37 static size_t GetPendingRetransmissionCount(
38 const QuicSentPacketManager* sent_packet_manager);
40 static bool HasPendingPackets(
41 const QuicSentPacketManager* sent_packet_manager);
43 static QuicTime GetSentTime(const QuicSentPacketManager* sent_packet_manager,
44 QuicPacketSequenceNumber sequence_number);
46 // Returns true if |sequence_number| is a retransmission of a packet.
47 static bool IsRetransmission(QuicSentPacketManager* sent_packet_manager,
48 QuicPacketSequenceNumber sequence_number);
50 static void MarkForRetransmission(QuicSentPacketManager* sent_packet_manager,
51 QuicPacketSequenceNumber sequence_number,
52 TransmissionType transmission_type);
54 static QuicTime::Delta GetRetransmissionDelay(
55 const QuicSentPacketManager* sent_packet_manager);
57 static bool HasUnackedCryptoPackets(
58 const QuicSentPacketManager* sent_packet_manager);
60 static size_t GetNumRetransmittablePackets(
61 const QuicSentPacketManager* sent_packet_manager);
63 static QuicByteCount GetBytesInFlight(
64 const QuicSentPacketManager* sent_packet_manager);
67 DISALLOW_COPY_AND_ASSIGN(QuicSentPacketManagerPeer);
74 #endif // NET_QUIC_TEST_TOOLS_QUIC_SENT_PACKET_MANAGER_PEER_H_