quic_sent_packet_manager_peer.h revision a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7
1// Copyright 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_SENT_PACKET_MANAGER_PEER_H_
6#define NET_QUIC_TEST_TOOLS_QUIC_SENT_PACKET_MANAGER_PEER_H_
7
8#include "net/quic/quic_protocol.h"
9#include "net/quic/quic_sent_packet_manager.h"
10
11namespace net {
12
13class SendAlgorithmInterface;
14
15namespace test {
16
17class QuicSentPacketManagerPeer {
18 public:
19  static void SetSendAlgorithm(QuicSentPacketManager* sent_packet_manager,
20                               SendAlgorithmInterface* send_algorithm);
21
22  static size_t GetNackCount(
23      const QuicSentPacketManager* sent_packet_manager,
24      QuicPacketSequenceNumber sequence_number);
25
26  static QuicTime::Delta rtt(QuicSentPacketManager* sent_packet_manager);
27
28  // Returns true if |sequence_number| is a retransmission of a packet.
29  static bool IsRetransmission(QuicSentPacketManager* sent_packet_manager,
30                               QuicPacketSequenceNumber sequence_number);
31
32  static void MarkForRetransmission(QuicSentPacketManager* sent_packet_manager,
33                                    QuicPacketSequenceNumber sequence_number,
34                                    TransmissionType transmission_type);
35
36 private:
37  DISALLOW_COPY_AND_ASSIGN(QuicSentPacketManagerPeer);
38};
39
40}  // namespace test
41
42}  // namespace net
43
44#endif  // NET_QUIC_TEST_TOOLS_QUIC_SENT_PACKET_MANAGER_PEER_H_
45