| // Copyright (c) 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_framer_peer.h" | 
 |  | 
 | #include "base/stl_util.h" | 
 | #include "net/quic/quic_framer.h" | 
 | #include "net/quic/quic_protocol.h" | 
 |  | 
 | namespace net { | 
 | namespace test { | 
 |  | 
 | // static | 
 | QuicPacketNumber QuicFramerPeer::CalculatePacketNumberFromWire( | 
 |     QuicFramer* framer, | 
 |     QuicPacketNumberLength packet_number_length, | 
 |     QuicPacketNumber last_packet_number, | 
 |     QuicPacketNumber packet_number) { | 
 |   return framer->CalculatePacketNumberFromWire( | 
 |       packet_number_length, last_packet_number, packet_number); | 
 | } | 
 |  | 
 | // static | 
 | void QuicFramerPeer::SetLastSerializedConnectionId( | 
 |     QuicFramer* framer, | 
 |     QuicConnectionId connection_id) { | 
 |   framer->last_serialized_connection_id_ = connection_id; | 
 | } | 
 |  | 
 | // static | 
 | void QuicFramerPeer::SetLastPacketNumber(QuicFramer* framer, | 
 |                                          QuicPacketNumber packet_number) { | 
 |   framer->last_packet_number_ = packet_number; | 
 | } | 
 |  | 
 | // static | 
 | void QuicFramerPeer::SetPerspective(QuicFramer* framer, | 
 |                                     Perspective perspective) { | 
 |   framer->perspective_ = perspective; | 
 | } | 
 |  | 
 | // static | 
 | void QuicFramerPeer::SwapCrypters(QuicFramer* framer1, QuicFramer* framer2) { | 
 |   for (int i = ENCRYPTION_NONE; i < NUM_ENCRYPTION_LEVELS; i++) { | 
 |     framer1->encrypter_[i].swap(framer2->encrypter_[i]); | 
 |   } | 
 |   framer1->decrypter_.swap(framer2->decrypter_); | 
 |   framer1->alternative_decrypter_.swap(framer2->alternative_decrypter_); | 
 |  | 
 |   EncryptionLevel framer2_level = framer2->decrypter_level_; | 
 |   framer2->decrypter_level_ = framer1->decrypter_level_; | 
 |   framer1->decrypter_level_ = framer2_level; | 
 |   framer2_level = framer2->alternative_decrypter_level_; | 
 |   framer2->alternative_decrypter_level_ = framer1->alternative_decrypter_level_; | 
 |   framer1->alternative_decrypter_level_ = framer2_level; | 
 |  | 
 |   const bool framer2_latch = framer2->alternative_decrypter_latch_; | 
 |   framer2->alternative_decrypter_latch_ = framer1->alternative_decrypter_latch_; | 
 |   framer1->alternative_decrypter_latch_ = framer2_latch; | 
 | } | 
 |  | 
 | // static | 
 | QuicEncrypter* QuicFramerPeer::GetEncrypter(QuicFramer* framer, | 
 |                                             EncryptionLevel level) { | 
 |   return framer->encrypter_[level].get(); | 
 | } | 
 |  | 
 | // static | 
 | QuicPacketNumber QuicFramerPeer::GetLastPacketNumber(QuicFramer* framer) { | 
 |   return framer->last_packet_number_; | 
 | } | 
 |  | 
 | // static | 
 | QuicPathId QuicFramerPeer::GetLastPathId(QuicFramer* framer) { | 
 |   return framer->last_path_id_; | 
 | } | 
 |  | 
 | // static | 
 | bool QuicFramerPeer::IsPathClosed(QuicFramer* framer, QuicPathId path_id) { | 
 |   return ContainsKey(framer->closed_paths_, path_id); | 
 | } | 
 |  | 
 | }  // namespace test | 
 | }  // namespace net |