1 // Copyright (c) 2012 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_connection_peer.h"
7 #include "base/stl_util.h"
8 #include "net/quic/congestion_control/quic_congestion_manager.h"
9 #include "net/quic/congestion_control/receive_algorithm_interface.h"
10 #include "net/quic/congestion_control/send_algorithm_interface.h"
11 #include "net/quic/quic_connection.h"
12 #include "net/quic/quic_packet_writer.h"
13 #include "net/quic/test_tools/quic_framer_peer.h"
14 #include "net/quic/test_tools/quic_test_writer.h"
20 void QuicConnectionPeer::SendAck(QuicConnection* connection) {
21 connection->SendAck();
25 void QuicConnectionPeer::SetReceiveAlgorithm(
26 QuicConnection* connection,
27 ReceiveAlgorithmInterface* receive_algorithm) {
28 connection->congestion_manager_.receive_algorithm_.reset(receive_algorithm);
32 void QuicConnectionPeer::SetSendAlgorithm(
33 QuicConnection* connection,
34 SendAlgorithmInterface* send_algorithm) {
35 connection->congestion_manager_.send_algorithm_.reset(send_algorithm);
39 QuicAckFrame* QuicConnectionPeer::CreateAckFrame(QuicConnection* connection) {
40 return connection->CreateAckFrame();
44 QuicConnectionVisitorInterface* QuicConnectionPeer::GetVisitor(
45 QuicConnection* connection) {
46 return connection->visitor_;
50 QuicPacketCreator* QuicConnectionPeer::GetPacketCreator(
51 QuicConnection* connection) {
52 return &connection->packet_creator_;
56 QuicCongestionManager* QuicConnectionPeer::GetCongestionManager(
57 QuicConnection* connection) {
58 return &connection->congestion_manager_;
61 bool QuicConnectionPeer::GetReceivedTruncatedAck(QuicConnection* connection) {
62 return connection->received_truncated_ack_;
66 QuicTime::Delta QuicConnectionPeer::GetNetworkTimeout(
67 QuicConnection* connection) {
68 return connection->idle_network_timeout_;
72 bool QuicConnectionPeer::IsSavedForRetransmission(
73 QuicConnection* connection,
74 QuicPacketSequenceNumber sequence_number) {
75 return connection->sent_packet_manager_.IsUnacked(sequence_number) &&
76 connection->sent_packet_manager_.HasRetransmittableFrames(
81 size_t QuicConnectionPeer::GetRetransmissionCount(
82 QuicConnection* connection,
83 QuicPacketSequenceNumber sequence_number) {
84 return connection->sent_packet_manager_.GetRetransmissionCount(
89 QuicPacketEntropyHash QuicConnectionPeer::GetSentEntropyHash(
90 QuicConnection* connection,
91 QuicPacketSequenceNumber sequence_number) {
92 return connection->sent_entropy_manager_.EntropyHash(sequence_number);
96 bool QuicConnectionPeer::IsValidEntropy(
97 QuicConnection* connection,
98 QuicPacketSequenceNumber largest_observed,
99 const SequenceNumberSet& missing_packets,
100 QuicPacketEntropyHash entropy_hash) {
101 return connection->sent_entropy_manager_.IsValidEntropy(
102 largest_observed, missing_packets, entropy_hash);
106 QuicPacketEntropyHash QuicConnectionPeer::ReceivedEntropyHash(
107 QuicConnection* connection,
108 QuicPacketSequenceNumber sequence_number) {
109 return connection->received_packet_manager_.EntropyHash(
114 bool QuicConnectionPeer::IsWriteBlocked(QuicConnection* connection) {
115 return connection->write_blocked_;
119 void QuicConnectionPeer::SetIsWriteBlocked(QuicConnection* connection,
120 bool write_blocked) {
121 connection->write_blocked_ = write_blocked;
125 bool QuicConnectionPeer::IsServer(QuicConnection* connection) {
126 return connection->is_server_;
130 void QuicConnectionPeer::SetIsServer(QuicConnection* connection,
132 connection->is_server_ = is_server;
133 QuicFramerPeer::SetIsServer(&connection->framer_, is_server);
137 void QuicConnectionPeer::SetSelfAddress(QuicConnection* connection,
138 const IPEndPoint& self_address) {
139 connection->self_address_ = self_address;
143 void QuicConnectionPeer::SetPeerAddress(QuicConnection* connection,
144 const IPEndPoint& peer_address) {
145 connection->peer_address_ = peer_address;
149 void QuicConnectionPeer::SwapCrypters(QuicConnection* connection,
150 QuicFramer* framer) {
151 framer->SwapCryptersForTest(&connection->framer_);
155 QuicConnectionHelperInterface* QuicConnectionPeer::GetHelper(
156 QuicConnection* connection) {
157 return connection->helper_;
161 QuicFramer* QuicConnectionPeer::GetFramer(QuicConnection* connection) {
162 return &connection->framer_;
165 QuicFecGroup* QuicConnectionPeer::GetFecGroup(QuicConnection* connection,
167 connection->last_header_.fec_group = fec_group;
168 return connection->GetFecGroup();
172 QuicAlarm* QuicConnectionPeer::GetAckAlarm(QuicConnection* connection) {
173 return connection->ack_alarm_.get();
177 QuicAlarm* QuicConnectionPeer::GetRetransmissionAlarm(
178 QuicConnection* connection) {
179 return connection->retransmission_alarm_.get();
183 QuicAlarm* QuicConnectionPeer::GetSendAlarm(QuicConnection* connection) {
184 return connection->send_alarm_.get();
188 QuicAlarm* QuicConnectionPeer::GetResumeWritesAlarm(
189 QuicConnection* connection) {
190 return connection->resume_writes_alarm_.get();
194 QuicAlarm* QuicConnectionPeer::GetTimeoutAlarm(QuicConnection* connection) {
195 return connection->timeout_alarm_.get();
199 QuicPacketWriter* QuicConnectionPeer::GetWriter(QuicConnection* connection) {
200 return connection->writer_;
204 void QuicConnectionPeer::SetWriter(QuicConnection* connection,
205 QuicTestWriter* writer) {
206 connection->writer_ = writer;