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 #include "net/quic/test_tools/quic_sent_packet_manager_peer.h"
7 #include "base/stl_util.h"
8 #include "net/quic/congestion_control/loss_detection_interface.h"
9 #include "net/quic/congestion_control/send_algorithm_interface.h"
10 #include "net/quic/quic_protocol.h"
11 #include "net/quic/quic_sent_packet_manager.h"
17 void QuicSentPacketManagerPeer::SetMaxTailLossProbes(
18 QuicSentPacketManager* sent_packet_manager, size_t max_tail_loss_probes) {
19 sent_packet_manager->max_tail_loss_probes_ = max_tail_loss_probes;
23 void QuicSentPacketManagerPeer::SetSendAlgorithm(
24 QuicSentPacketManager* sent_packet_manager,
25 SendAlgorithmInterface* send_algorithm) {
26 sent_packet_manager->send_algorithm_.reset(send_algorithm);
30 const LossDetectionInterface* QuicSentPacketManagerPeer::GetLossAlgorithm(
31 QuicSentPacketManager* sent_packet_manager) {
32 return sent_packet_manager->loss_algorithm_.get();
36 void QuicSentPacketManagerPeer::SetLossAlgorithm(
37 QuicSentPacketManager* sent_packet_manager,
38 LossDetectionInterface* loss_detector) {
39 sent_packet_manager->loss_algorithm_.reset(loss_detector);
43 RttStats* QuicSentPacketManagerPeer::GetRttStats(
44 QuicSentPacketManager* sent_packet_manager) {
45 return &sent_packet_manager->rtt_stats_;
49 size_t QuicSentPacketManagerPeer::GetNackCount(
50 const QuicSentPacketManager* sent_packet_manager,
51 QuicPacketSequenceNumber sequence_number) {
52 return sent_packet_manager->unacked_packets_.
53 GetTransmissionInfo(sequence_number).nack_count;
57 size_t QuicSentPacketManagerPeer::GetPendingRetransmissionCount(
58 const QuicSentPacketManager* sent_packet_manager) {
59 return sent_packet_manager->pending_retransmissions_.size();
63 bool QuicSentPacketManagerPeer::HasPendingPackets(
64 const QuicSentPacketManager* sent_packet_manager) {
65 return sent_packet_manager->unacked_packets_.HasPendingPackets();
69 QuicTime QuicSentPacketManagerPeer::GetSentTime(
70 const QuicSentPacketManager* sent_packet_manager,
71 QuicPacketSequenceNumber sequence_number) {
72 DCHECK(sent_packet_manager->unacked_packets_.IsUnacked(sequence_number));
74 return sent_packet_manager->unacked_packets_.GetTransmissionInfo(
75 sequence_number).sent_time;
79 bool QuicSentPacketManagerPeer::IsRetransmission(
80 QuicSentPacketManager* sent_packet_manager,
81 QuicPacketSequenceNumber sequence_number) {
82 DCHECK(sent_packet_manager->HasRetransmittableFrames(sequence_number));
83 return sent_packet_manager->HasRetransmittableFrames(sequence_number) &&
84 sent_packet_manager->unacked_packets_.GetTransmissionInfo(
85 sequence_number).all_transmissions->size() > 1;
89 void QuicSentPacketManagerPeer::MarkForRetransmission(
90 QuicSentPacketManager* sent_packet_manager,
91 QuicPacketSequenceNumber sequence_number,
92 TransmissionType transmission_type) {
93 sent_packet_manager->MarkForRetransmission(sequence_number,
98 QuicTime::Delta QuicSentPacketManagerPeer::GetRetransmissionDelay(
99 const QuicSentPacketManager* sent_packet_manager) {
100 return sent_packet_manager->GetRetransmissionDelay();
104 bool QuicSentPacketManagerPeer::HasUnackedCryptoPackets(
105 const QuicSentPacketManager* sent_packet_manager) {
106 return sent_packet_manager->unacked_packets_.HasPendingCryptoPackets();
110 size_t QuicSentPacketManagerPeer::GetNumRetransmittablePackets(
111 const QuicSentPacketManager* sent_packet_manager) {
112 return sent_packet_manager->unacked_packets_.GetNumRetransmittablePackets();
116 SequenceNumberSet QuicSentPacketManagerPeer::GetUnackedPackets(
117 const QuicSentPacketManager* sent_packet_manager) {
118 return sent_packet_manager->unacked_packets_.GetUnackedPackets();
122 QuicByteCount QuicSentPacketManagerPeer::GetBytesInFlight(
123 const QuicSentPacketManager* sent_packet_manager) {
124 return sent_packet_manager->unacked_packets_.bytes_in_flight();