12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/quic/test_tools/quic_connection_peer.h"
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/stl_util.h"
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/quic/congestion_control/receive_algorithm_interface.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/quic/congestion_control/send_algorithm_interface.h"
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/quic/quic_connection.h"
111e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "net/quic/quic_packet_writer.h"
12a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "net/quic/quic_received_packet_manager.h"
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/quic/test_tools/quic_framer_peer.h"
14f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "net/quic/test_tools/quic_packet_generator_peer.h"
15a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "net/quic/test_tools/quic_sent_packet_manager_peer.h"
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace net {
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace test {
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void QuicConnectionPeer::SendAck(QuicConnection* connection) {
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  connection->SendAck();
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void QuicConnectionPeer::SetReceiveAlgorithm(
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    QuicConnection* connection,
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    ReceiveAlgorithmInterface* receive_algorithm) {
29a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  connection->received_packet_manager_.receive_algorithm_.reset(
30a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      receive_algorithm);
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void QuicConnectionPeer::SetSendAlgorithm(
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    QuicConnection* connection,
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    SendAlgorithmInterface* send_algorithm) {
37a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  connection->sent_packet_manager_.send_algorithm_.reset(send_algorithm);
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static
412385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen MurdochQuicAckFrame* QuicConnectionPeer::CreateAckFrame(QuicConnection* connection) {
422385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  return connection->CreateAckFrame();
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)QuicConnectionVisitorInterface* QuicConnectionPeer::GetVisitor(
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    QuicConnection* connection) {
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return connection->visitor_;
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)QuicPacketCreator* QuicConnectionPeer::GetPacketCreator(
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    QuicConnection* connection) {
54f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  return QuicPacketGeneratorPeer::GetPacketCreator(
55f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      &connection->packet_generator_);
56f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
57f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
58f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// static
59f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)QuicPacketGenerator* QuicConnectionPeer::GetPacketGenerator(
60f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    QuicConnection* connection) {
61f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  return &connection->packet_generator_;
622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
64a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// static
655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)QuicSentPacketManager* QuicConnectionPeer::GetSentPacketManager(
665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    QuicConnection* connection) {
675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return &connection->sent_packet_manager_;
685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// static
71a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)QuicReceivedPacketManager* QuicConnectionPeer::GetReceivedPacketManager(
72a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)    QuicConnection* connection) {
73a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  return &connection->received_packet_manager_;
742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static
77868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)QuicTime::Delta QuicConnectionPeer::GetNetworkTimeout(
78868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)    QuicConnection* connection) {
79868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  return connection->idle_network_timeout_;
8090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
8190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
8290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// static
832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool QuicConnectionPeer::IsSavedForRetransmission(
842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    QuicConnection* connection,
852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    QuicPacketSequenceNumber sequence_number) {
8668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  return connection->sent_packet_manager_.IsUnacked(sequence_number) &&
8768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      connection->sent_packet_manager_.HasRetransmittableFrames(
8868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          sequence_number);
892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static
92f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)bool QuicConnectionPeer::IsRetransmission(
932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    QuicConnection* connection,
942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    QuicPacketSequenceNumber sequence_number) {
95a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  return QuicSentPacketManagerPeer::IsRetransmission(
96a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      &connection->sent_packet_manager_, sequence_number);
972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static
1005d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// TODO(ianswett): Create a GetSentEntropyHash which accepts an AckFrame.
1012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)QuicPacketEntropyHash QuicConnectionPeer::GetSentEntropyHash(
1022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    QuicConnection* connection,
1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    QuicPacketSequenceNumber sequence_number) {
104558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  return connection->sent_entropy_manager_.EntropyHash(sequence_number);
1052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static
1082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool QuicConnectionPeer::IsValidEntropy(
1092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    QuicConnection* connection,
1102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    QuicPacketSequenceNumber largest_observed,
1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const SequenceNumberSet& missing_packets,
1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    QuicPacketEntropyHash entropy_hash) {
113558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  return connection->sent_entropy_manager_.IsValidEntropy(
1142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      largest_observed, missing_packets, entropy_hash);
1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static
1182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)QuicPacketEntropyHash QuicConnectionPeer::ReceivedEntropyHash(
1192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    QuicConnection* connection,
1202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    QuicPacketSequenceNumber sequence_number) {
1212385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  return connection->received_packet_manager_.EntropyHash(
122558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch      sequence_number);
1232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
1242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static
1262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool QuicConnectionPeer::IsServer(QuicConnection* connection) {
1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return connection->is_server_;
1282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
1292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static
1312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void QuicConnectionPeer::SetIsServer(QuicConnection* connection,
1322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                     bool is_server) {
1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  connection->is_server_ = is_server;
1342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  QuicFramerPeer::SetIsServer(&connection->framer_, is_server);
1352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
1362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
137b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// static
1387d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)void QuicConnectionPeer::SetSelfAddress(QuicConnection* connection,
1397d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)                                        const IPEndPoint& self_address) {
1407d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  connection->self_address_ = self_address;
1417d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)}
1427d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
1437d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// static
14458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)void QuicConnectionPeer::SetPeerAddress(QuicConnection* connection,
14558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)                                        const IPEndPoint& peer_address) {
14658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  connection->peer_address_ = peer_address;
14758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)}
14858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
14958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// static
150b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)void QuicConnectionPeer::SwapCrypters(QuicConnection* connection,
151b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)                                      QuicFramer* framer) {
1525c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  QuicFramerPeer::SwapCrypters(framer, &connection->framer_);
153b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)}
154b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
15590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// static
15690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)QuicConnectionHelperInterface* QuicConnectionPeer::GetHelper(
15790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    QuicConnection* connection) {
1581e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  return connection->helper_;
15990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
16090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
161ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// static
162ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochQuicFramer* QuicConnectionPeer::GetFramer(QuicConnection* connection) {
163ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  return &connection->framer_;
164ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}
165ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
16690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)QuicFecGroup* QuicConnectionPeer::GetFecGroup(QuicConnection* connection,
16790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                                              int fec_group) {
16890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  connection->last_header_.fec_group = fec_group;
16990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  return connection->GetFecGroup();
17090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
17190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
172ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// static
173ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochQuicAlarm* QuicConnectionPeer::GetAckAlarm(QuicConnection* connection) {
174ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  return connection->ack_alarm_.get();
175ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}
176ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
177ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// static
1780529e5d033099cbfc42635f6f6183833b09dff6eBen MurdochQuicAlarm* QuicConnectionPeer::GetPingAlarm(QuicConnection* connection) {
1790529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  return connection->ping_alarm_.get();
1800529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch}
1810529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
1820529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// static
1830529e5d033099cbfc42635f6f6183833b09dff6eBen MurdochQuicAlarm* QuicConnectionPeer::GetResumeWritesAlarm(
1840529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch    QuicConnection* connection) {
1850529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  return connection->resume_writes_alarm_.get();
1860529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch}
1870529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
1880529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// static
189ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochQuicAlarm* QuicConnectionPeer::GetRetransmissionAlarm(
190ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch    QuicConnection* connection) {
191ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  return connection->retransmission_alarm_.get();
192ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}
193ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
194ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// static
195ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochQuicAlarm* QuicConnectionPeer::GetSendAlarm(QuicConnection* connection) {
196ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  return connection->send_alarm_.get();
197ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}
198ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
199ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// static
200ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochQuicAlarm* QuicConnectionPeer::GetTimeoutAlarm(QuicConnection* connection) {
201ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  return connection->timeout_alarm_.get();
202ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}
203ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
2041e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// static
2051e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)QuicPacketWriter* QuicConnectionPeer::GetWriter(QuicConnection* connection) {
2061e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  return connection->writer_;
2071e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
2081e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
2091e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// static
2101e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)void QuicConnectionPeer::SetWriter(QuicConnection* connection,
2115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                   QuicPacketWriter* writer) {
2121e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  connection->writer_ = writer;
2131e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
2141e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
2155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// static
2165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void QuicConnectionPeer::CloseConnection(QuicConnection* connection) {
2175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  connection->connected_ = false;
2185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
2195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
2205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// static
2215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)QuicEncryptedPacket* QuicConnectionPeer::GetConnectionClosePacket(
2225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    QuicConnection* connection) {
2235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return connection->connection_close_packet_.get();
2245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
2255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
22646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// static
22746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)void QuicConnectionPeer::SetSupportedVersions(QuicConnection* connection,
22846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)                                              QuicVersionVector versions) {
22946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  connection->framer_.SetSupportedVersions(versions);
23046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}
23146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
2322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace test
2332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace net
234