blob: e2e7c02c1a2f25af564375cb498488ff1f6f4a50 [file] [log] [blame]
// 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.
#include "net/quic/test_tools/quic_sent_packet_manager_peer.h"
#include "base/stl_util.h"
#include "net/quic/congestion_control/send_algorithm_interface.h"
#include "net/quic/quic_protocol.h"
#include "net/quic/quic_sent_packet_manager.h"
namespace net {
namespace test {
// static
void QuicSentPacketManagerPeer::SetSendAlgorithm(
QuicSentPacketManager* sent_packet_manager,
SendAlgorithmInterface* send_algorithm) {
sent_packet_manager->send_algorithm_.reset(send_algorithm);
}
// static
size_t QuicSentPacketManagerPeer::GetNackCount(
const QuicSentPacketManager* sent_packet_manager,
QuicPacketSequenceNumber sequence_number) {
return sent_packet_manager->packet_history_map_.find(
sequence_number)->second->nack_count();
}
// static
QuicTime QuicSentPacketManagerPeer::GetSentTime(
const QuicSentPacketManager* sent_packet_manager,
QuicPacketSequenceNumber sequence_number) {
DCHECK(ContainsKey(sent_packet_manager->unacked_packets_, sequence_number));
return sent_packet_manager->unacked_packets_
.find(sequence_number)->second.sent_time;
}
// static
QuicTime::Delta QuicSentPacketManagerPeer::rtt(
QuicSentPacketManager* sent_packet_manager) {
return sent_packet_manager->rtt_sample_;
}
// static
bool QuicSentPacketManagerPeer::IsRetransmission(
QuicSentPacketManager* sent_packet_manager,
QuicPacketSequenceNumber sequence_number) {
DCHECK(sent_packet_manager->HasRetransmittableFrames(sequence_number));
return sent_packet_manager->HasRetransmittableFrames(sequence_number) &&
sent_packet_manager->
unacked_packets_[sequence_number].previous_transmissions != NULL;
}
// static
void QuicSentPacketManagerPeer::MarkForRetransmission(
QuicSentPacketManager* sent_packet_manager,
QuicPacketSequenceNumber sequence_number,
TransmissionType transmission_type) {
sent_packet_manager->MarkForRetransmission(sequence_number,
transmission_type);
}
} // namespace test
} // namespace net