1// Copyright (c) 2013 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.
4
5#ifndef NET_QUIC_TEST_TOOLS_QUIC_FRAMER_PEER_H_
6#define NET_QUIC_TEST_TOOLS_QUIC_FRAMER_PEER_H_
7
8#include "net/quic/quic_protocol.h"
9
10namespace net {
11
12class QuicFramer;
13
14namespace test {
15
16class QuicFramerPeer {
17 public:
18  static QuicPacketSequenceNumber CalculatePacketSequenceNumberFromWire(
19      QuicFramer* framer,
20      QuicSequenceNumberLength sequence_number_length,
21      QuicPacketSequenceNumber packet_sequence_number);
22  static void SetLastSerializedConnectionId(QuicFramer* framer,
23                                            QuicConnectionId connection_id);
24  static void SetLastSequenceNumber(
25      QuicFramer* framer,
26      QuicPacketSequenceNumber packet_sequence_number);
27  static void SetIsServer(QuicFramer* framer, bool is_server);
28
29  // SwapCrypters exchanges the state of the crypters of |framer1| with
30  // |framer2|.
31  static void SwapCrypters(QuicFramer* framer1, QuicFramer* framer2);
32
33 private:
34  DISALLOW_COPY_AND_ASSIGN(QuicFramerPeer);
35};
36
37}  // namespace test
38
39}  // namespace net
40
41#endif  // NET_QUIC_TEST_TOOLS_QUIC_FRAMER_PEER_H_
42