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 NET_QUIC_TEST_TOOLS_QUIC_SENT_PACKET_MANAGER_PEER_H_ 6#define NET_QUIC_TEST_TOOLS_QUIC_SENT_PACKET_MANAGER_PEER_H_ 7 8#include "net/quic/quic_protocol.h" 9#include "net/quic/quic_sent_packet_manager.h" 10 11namespace net { 12 13class SendAlgorithmInterface; 14 15namespace test { 16 17class QuicSentPacketManagerPeer { 18 public: 19 static void SetMaxTailLossProbes( 20 QuicSentPacketManager* sent_packet_manager, size_t max_tail_loss_probes); 21 22 static void SetSendAlgorithm(QuicSentPacketManager* sent_packet_manager, 23 SendAlgorithmInterface* send_algorithm); 24 25 static const LossDetectionInterface* GetLossAlgorithm( 26 QuicSentPacketManager* sent_packet_manager); 27 28 static const SendAlgorithmInterface* GetCongestionControlAlgorithm( 29 const QuicSentPacketManager& sent_packet_manager); 30 31 static void SetLossAlgorithm(QuicSentPacketManager* sent_packet_manager, 32 LossDetectionInterface* loss_detector); 33 34 static RttStats* GetRttStats(QuicSentPacketManager* sent_packet_manager); 35 36 static size_t GetNackCount( 37 const QuicSentPacketManager* sent_packet_manager, 38 QuicPacketSequenceNumber sequence_number); 39 40 static size_t GetPendingRetransmissionCount( 41 const QuicSentPacketManager* sent_packet_manager); 42 43 static bool HasPendingPackets( 44 const QuicSentPacketManager* sent_packet_manager); 45 46 static QuicTime GetSentTime(const QuicSentPacketManager* sent_packet_manager, 47 QuicPacketSequenceNumber sequence_number); 48 49 // Returns true if |sequence_number| is a retransmission of a packet. 50 static bool IsRetransmission(QuicSentPacketManager* sent_packet_manager, 51 QuicPacketSequenceNumber sequence_number); 52 53 static void MarkForRetransmission(QuicSentPacketManager* sent_packet_manager, 54 QuicPacketSequenceNumber sequence_number, 55 TransmissionType transmission_type); 56 57 static QuicTime::Delta GetRetransmissionDelay( 58 const QuicSentPacketManager* sent_packet_manager); 59 60 static bool HasUnackedCryptoPackets( 61 const QuicSentPacketManager* sent_packet_manager); 62 63 static size_t GetNumRetransmittablePackets( 64 const QuicSentPacketManager* sent_packet_manager); 65 66 static QuicByteCount GetBytesInFlight( 67 const QuicSentPacketManager* sent_packet_manager); 68 69 static QuicSentPacketManager::NetworkChangeVisitor* GetNetworkChangeVisitor( 70 const QuicSentPacketManager* sent_packet_manager); 71 72 static QuicSustainedBandwidthRecorder& GetBandwidthRecorder( 73 QuicSentPacketManager* sent_packet_manager); 74 75 private: 76 DISALLOW_COPY_AND_ASSIGN(QuicSentPacketManagerPeer); 77}; 78 79} // namespace test 80 81} // namespace net 82 83#endif // NET_QUIC_TEST_TOOLS_QUIC_SENT_PACKET_MANAGER_PEER_H_ 84