quic_sent_packet_manager_peer.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
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 SetMaxTailLossProbes(
20      QuicSentPacketManager* sent_packet_manager, size_t max_tail_loss_probes);
21
22  static void SetSendAlgorithm(QuicSentPacketManager* sent_packet_manager,
23                               SendAlgorithmInterface* send_algorithm);
24
25  static size_t GetNackCount(
26      const QuicSentPacketManager* sent_packet_manager,
27      QuicPacketSequenceNumber sequence_number);
28
29  static size_t GetPendingRetransmissionCount(
30      const QuicSentPacketManager* sent_packet_manager);
31
32  static bool HasPendingPackets(
33      const QuicSentPacketManager* sent_packet_manager);
34
35  static QuicTime GetSentTime(const QuicSentPacketManager* sent_packet_manager,
36                              QuicPacketSequenceNumber sequence_number);
37
38  static QuicTime::Delta rtt(QuicSentPacketManager* sent_packet_manager);
39
40  // Returns true if |sequence_number| is a retransmission of a packet.
41  static bool IsRetransmission(QuicSentPacketManager* sent_packet_manager,
42                               QuicPacketSequenceNumber sequence_number);
43
44  static void MarkForRetransmission(QuicSentPacketManager* sent_packet_manager,
45                                    QuicPacketSequenceNumber sequence_number,
46                                    TransmissionType transmission_type);
47
48  static QuicTime::Delta GetRetransmissionDelay(
49      const QuicSentPacketManager* sent_packet_manager);
50
51  static bool HasUnackedCryptoPackets(
52      const QuicSentPacketManager* sent_packet_manager);
53
54 private:
55  DISALLOW_COPY_AND_ASSIGN(QuicSentPacketManagerPeer);
56};
57
58}  // namespace test
59
60}  // namespace net
61
62#endif  // NET_QUIC_TEST_TOOLS_QUIC_SENT_PACKET_MANAGER_PEER_H_
63