|  | // Copyright 2013 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #ifndef QUICHE_QUIC_TEST_TOOLS_QUIC_SENT_PACKET_MANAGER_PEER_H_ | 
|  | #define QUICHE_QUIC_TEST_TOOLS_QUIC_SENT_PACKET_MANAGER_PEER_H_ | 
|  |  | 
|  | #include "base/macros.h" | 
|  | #include "net/third_party/quiche/src/quic/core/quic_packets.h" | 
|  | #include "net/third_party/quiche/src/quic/core/quic_sent_packet_manager.h" | 
|  |  | 
|  | namespace quic { | 
|  |  | 
|  | class SendAlgorithmInterface; | 
|  |  | 
|  | namespace test { | 
|  |  | 
|  | class QuicSentPacketManagerPeer { | 
|  | public: | 
|  | QuicSentPacketManagerPeer() = delete; | 
|  |  | 
|  | static size_t GetMaxTailLossProbes( | 
|  | QuicSentPacketManager* sent_packet_manager); | 
|  |  | 
|  | static void SetMaxTailLossProbes(QuicSentPacketManager* sent_packet_manager, | 
|  | size_t max_tail_loss_probes); | 
|  |  | 
|  | static bool GetEnableHalfRttTailLossProbe( | 
|  | QuicSentPacketManager* sent_packet_manager); | 
|  |  | 
|  | static bool GetUseNewRto(QuicSentPacketManager* sent_packet_manager); | 
|  |  | 
|  | static void SetPerspective(QuicSentPacketManager* sent_packet_manager, | 
|  | Perspective perspective); | 
|  |  | 
|  | static SendAlgorithmInterface* GetSendAlgorithm( | 
|  | const QuicSentPacketManager& sent_packet_manager); | 
|  |  | 
|  | static void SetSendAlgorithm(QuicSentPacketManager* sent_packet_manager, | 
|  | SendAlgorithmInterface* send_algorithm); | 
|  |  | 
|  | static const LossDetectionInterface* GetLossAlgorithm( | 
|  | QuicSentPacketManager* sent_packet_manager); | 
|  |  | 
|  | static void SetLossAlgorithm(QuicSentPacketManager* sent_packet_manager, | 
|  | LossDetectionInterface* loss_detector); | 
|  |  | 
|  | static RttStats* GetRttStats(QuicSentPacketManager* sent_packet_manager); | 
|  |  | 
|  | static bool HasPendingPackets( | 
|  | const QuicSentPacketManager* sent_packet_manager); | 
|  |  | 
|  | // Returns true if |packet_number| is a retransmission of a packet. | 
|  | static bool IsRetransmission(QuicSentPacketManager* sent_packet_manager, | 
|  | uint64_t packet_number); | 
|  |  | 
|  | static void MarkForRetransmission(QuicSentPacketManager* sent_packet_manager, | 
|  | uint64_t packet_number, | 
|  | TransmissionType transmission_type); | 
|  |  | 
|  | static QuicTime::Delta GetRetransmissionDelay( | 
|  | const QuicSentPacketManager* sent_packet_manager, | 
|  | size_t consecutive_rto_count); | 
|  | static QuicTime::Delta GetRetransmissionDelay( | 
|  | const QuicSentPacketManager* sent_packet_manager); | 
|  | static QuicTime::Delta GetTailLossProbeDelay( | 
|  | const QuicSentPacketManager* sent_packet_manager, | 
|  | size_t consecutive_tlp_count); | 
|  | static QuicTime::Delta GetTailLossProbeDelay( | 
|  | const QuicSentPacketManager* sent_packet_manager); | 
|  |  | 
|  | static bool HasUnackedCryptoPackets( | 
|  | const QuicSentPacketManager* sent_packet_manager); | 
|  |  | 
|  | static size_t GetNumRetransmittablePackets( | 
|  | const QuicSentPacketManager* sent_packet_manager); | 
|  |  | 
|  | static QuicByteCount GetBytesInFlight( | 
|  | const QuicSentPacketManager* sent_packet_manager); | 
|  |  | 
|  | static void SetConsecutiveRtoCount(QuicSentPacketManager* sent_packet_manager, | 
|  | size_t count); | 
|  |  | 
|  | static void SetConsecutiveTlpCount(QuicSentPacketManager* sent_packet_manager, | 
|  | size_t count); | 
|  |  | 
|  | static QuicSustainedBandwidthRecorder& GetBandwidthRecorder( | 
|  | QuicSentPacketManager* sent_packet_manager); | 
|  |  | 
|  | static void SetUsingPacing(QuicSentPacketManager* sent_packet_manager, | 
|  | bool using_pacing); | 
|  |  | 
|  | static bool UsingPacing(const QuicSentPacketManager* sent_packet_manager); | 
|  |  | 
|  | static bool IsUnacked(QuicSentPacketManager* sent_packet_manager, | 
|  | uint64_t packet_number); | 
|  |  | 
|  | static bool HasRetransmittableFrames( | 
|  | QuicSentPacketManager* sent_packet_manager, | 
|  | uint64_t packet_number); | 
|  |  | 
|  | static QuicUnackedPacketMap* GetUnackedPacketMap( | 
|  | QuicSentPacketManager* sent_packet_manager); | 
|  |  | 
|  | static void DisablePacerBursts(QuicSentPacketManager* sent_packet_manager); | 
|  |  | 
|  | static void SetNextPacedPacketTime(QuicSentPacketManager* sent_packet_manager, | 
|  | QuicTime time); | 
|  | }; | 
|  |  | 
|  | }  // namespace test | 
|  |  | 
|  | }  // namespace quic | 
|  |  | 
|  | #endif  // QUICHE_QUIC_TEST_TOOLS_QUIC_SENT_PACKET_MANAGER_PEER_H_ |