blob: 5d715db4ef5c58ed14047604f5b0dd23e0ebe78b [file] [log] [blame]
// Copyright (c) 2012 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_connection_peer.h"
#include "base/stl_util.h"
#include "net/quic/congestion_control/quic_congestion_manager.h"
#include "net/quic/congestion_control/receive_algorithm_interface.h"
#include "net/quic/congestion_control/send_algorithm_interface.h"
#include "net/quic/quic_connection.h"
#include "net/quic/test_tools/quic_framer_peer.h"
namespace net {
namespace test {
// static
void QuicConnectionPeer::SendAck(QuicConnection* connection) {
connection->SendAck();
}
// static
void QuicConnectionPeer::SetReceiveAlgorithm(
QuicConnection* connection,
ReceiveAlgorithmInterface* receive_algorithm) {
connection->congestion_manager_.receive_algorithm_.reset(receive_algorithm);
}
// static
void QuicConnectionPeer::SetSendAlgorithm(
QuicConnection* connection,
SendAlgorithmInterface* send_algorithm) {
connection->congestion_manager_.send_algorithm_.reset(send_algorithm);
}
// static
QuicAckFrame* QuicConnectionPeer::CreateAckFrame(QuicConnection* connection) {
return connection->CreateAckFrame();
}
// static
QuicConnectionVisitorInterface* QuicConnectionPeer::GetVisitor(
QuicConnection* connection) {
return connection->visitor_;
}
// static
QuicPacketCreator* QuicConnectionPeer::GetPacketCreator(
QuicConnection* connection) {
return &connection->packet_creator_;
}
bool QuicConnectionPeer::GetReceivedTruncatedAck(QuicConnection* connection) {
return connection->received_truncated_ack_;
}
// static
size_t QuicConnectionPeer::GetNumRetransmissionTimeouts(
QuicConnection* connection) {
return connection->retransmission_timeouts_.size();
}
// static
QuicTime::Delta QuicConnectionPeer::GetNetworkTimeout(
QuicConnection* connection) {
return connection->idle_network_timeout_;
}
// static
bool QuicConnectionPeer::IsSavedForRetransmission(
QuicConnection* connection,
QuicPacketSequenceNumber sequence_number) {
return connection->sent_packet_manager_.IsUnacked(sequence_number);
}
// static
size_t QuicConnectionPeer::GetRetransmissionCount(
QuicConnection* connection,
QuicPacketSequenceNumber sequence_number) {
return connection->sent_packet_manager_.GetRetransmissionCount(
sequence_number);
}
// static
QuicPacketEntropyHash QuicConnectionPeer::GetSentEntropyHash(
QuicConnection* connection,
QuicPacketSequenceNumber sequence_number) {
return connection->sent_entropy_manager_.EntropyHash(sequence_number);
}
// static
bool QuicConnectionPeer::IsValidEntropy(
QuicConnection* connection,
QuicPacketSequenceNumber largest_observed,
const SequenceNumberSet& missing_packets,
QuicPacketEntropyHash entropy_hash) {
return connection->sent_entropy_manager_.IsValidEntropy(
largest_observed, missing_packets, entropy_hash);
}
// static
QuicPacketEntropyHash QuicConnectionPeer::ReceivedEntropyHash(
QuicConnection* connection,
QuicPacketSequenceNumber sequence_number) {
return connection->received_packet_manager_.EntropyHash(
sequence_number);
}
// static
bool QuicConnectionPeer::IsServer(QuicConnection* connection) {
return connection->is_server_;
}
// static
void QuicConnectionPeer::SetIsServer(QuicConnection* connection,
bool is_server) {
connection->is_server_ = is_server;
QuicFramerPeer::SetIsServer(&connection->framer_, is_server);
}
// static
void QuicConnectionPeer::SetSelfAddress(QuicConnection* connection,
const IPEndPoint& self_address) {
connection->self_address_ = self_address;
}
// static
void QuicConnectionPeer::SetPeerAddress(QuicConnection* connection,
const IPEndPoint& peer_address) {
connection->peer_address_ = peer_address;
}
// static
void QuicConnectionPeer::SwapCrypters(QuicConnection* connection,
QuicFramer* framer) {
framer->SwapCryptersForTest(&connection->framer_);
}
// static
void QuicConnectionPeer:: SetMaxPacketsPerRetransmissionAlarm(
QuicConnection* connection,
int max_packets) {
connection->max_packets_per_retransmission_alarm_ = max_packets;
}
// static
QuicConnectionHelperInterface* QuicConnectionPeer::GetHelper(
QuicConnection* connection) {
return connection->helper_.get();
}
// static
QuicFramer* QuicConnectionPeer::GetFramer(QuicConnection* connection) {
return &connection->framer_;
}
QuicFecGroup* QuicConnectionPeer::GetFecGroup(QuicConnection* connection,
int fec_group) {
connection->last_header_.fec_group = fec_group;
return connection->GetFecGroup();
}
// static
QuicAlarm* QuicConnectionPeer::GetAckAlarm(QuicConnection* connection) {
return connection->ack_alarm_.get();
}
// static
QuicAlarm* QuicConnectionPeer::GetRetransmissionAlarm(
QuicConnection* connection) {
return connection->retransmission_alarm_.get();
}
// static
QuicAlarm* QuicConnectionPeer::GetSendAlarm(QuicConnection* connection) {
return connection->send_alarm_.get();
}
// static
QuicAlarm* QuicConnectionPeer::GetTimeoutAlarm(QuicConnection* connection) {
return connection->timeout_alarm_.get();
}
} // namespace test
} // namespace net