OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef NET_QUIC_QUIC_SENT_PACKET_MANAGER_INTERFACE_H_ | 5 #ifndef NET_QUIC_QUIC_SENT_PACKET_MANAGER_INTERFACE_H_ |
6 #define NET_QUIC_QUIC_SENT_PACKET_MANAGER_INTERFACE_H_ | 6 #define NET_QUIC_QUIC_SENT_PACKET_MANAGER_INTERFACE_H_ |
7 | 7 |
8 #include "base/macros.h" | 8 #include "base/macros.h" |
9 #include "net/base/net_export.h" | 9 #include "net/base/net_export.h" |
10 #include "net/quic/core/quic_protocol.h" | 10 #include "net/quic/core/congestion_control/send_algorithm_interface.h" |
| 11 #include "net/quic/core/quic_packets.h" |
| 12 #include "net/quic/core/quic_pending_retransmission.h" |
11 #include "net/quic/core/quic_sustained_bandwidth_recorder.h" | 13 #include "net/quic/core/quic_sustained_bandwidth_recorder.h" |
12 | 14 |
13 namespace net { | 15 namespace net { |
14 | 16 |
15 class QuicConfig; | 17 class QuicConfig; |
16 class RttStats; | 18 class RttStats; |
17 | 19 |
18 class NET_EXPORT_PRIVATE QuicSentPacketManagerInterface { | 20 class NET_EXPORT_PRIVATE QuicSentPacketManagerInterface { |
19 public: | 21 public: |
20 // Interface which gets callbacks from the QuicSentPacketManager at | 22 // Interface which gets callbacks from the QuicSentPacketManager at |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
91 // alarm fires) if there is still a tail loss probe pending. Invoked after | 93 // alarm fires) if there is still a tail loss probe pending. Invoked after |
92 // OnRetransmissionTimeout. | 94 // OnRetransmissionTimeout. |
93 virtual bool MaybeRetransmitTailLossProbe() = 0; | 95 virtual bool MaybeRetransmitTailLossProbe() = 0; |
94 | 96 |
95 // Removes the retransmittable frames from all unencrypted packets on the | 97 // Removes the retransmittable frames from all unencrypted packets on the |
96 // default path to ensure they don't get retransmitted. | 98 // default path to ensure they don't get retransmitted. |
97 virtual void NeuterUnencryptedPackets() = 0; | 99 virtual void NeuterUnencryptedPackets() = 0; |
98 | 100 |
99 virtual bool HasPendingRetransmissions() const = 0; | 101 virtual bool HasPendingRetransmissions() const = 0; |
100 | 102 |
101 virtual PendingRetransmission NextPendingRetransmission() = 0; | 103 virtual QuicPendingRetransmission NextPendingRetransmission() = 0; |
102 | 104 |
103 // Returns true if the default path has unacked packets. | 105 // Returns true if the default path has unacked packets. |
104 virtual bool HasUnackedPackets() const = 0; | 106 virtual bool HasUnackedPackets() const = 0; |
105 | 107 |
106 virtual QuicPacketNumber GetLeastUnacked(QuicPathId path_id) const = 0; | 108 virtual QuicPacketNumber GetLeastUnacked(QuicPathId path_id) const = 0; |
107 | 109 |
108 virtual bool OnPacketSent( | 110 virtual bool OnPacketSent( |
109 SerializedPacket* serialized_packet, | 111 SerializedPacket* serialized_packet, |
110 QuicPathId original_path_id, | 112 QuicPathId original_path_id, |
111 QuicPacketNumber original_packet_number, | 113 QuicPacketNumber original_packet_number, |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
181 virtual bool InSlowStart() const = 0; | 183 virtual bool InSlowStart() const = 0; |
182 | 184 |
183 // These two methods return the consecutive RTO or TLP count of the default | 185 // These two methods return the consecutive RTO or TLP count of the default |
184 // path. | 186 // path. |
185 virtual size_t GetConsecutiveRtoCount() const = 0; | 187 virtual size_t GetConsecutiveRtoCount() const = 0; |
186 virtual size_t GetConsecutiveTlpCount() const = 0; | 188 virtual size_t GetConsecutiveTlpCount() const = 0; |
187 | 189 |
188 // Signals to the congestion controller that the connection has no outstanding | 190 // Signals to the congestion controller that the connection has no outstanding |
189 // data to send. | 191 // data to send. |
190 virtual void OnApplicationLimited() = 0; | 192 virtual void OnApplicationLimited() = 0; |
| 193 |
| 194 // Returns the currently used congestion control algorithm. The manager |
| 195 // retains the ownership of the algorithm. |
| 196 virtual const SendAlgorithmInterface* GetSendAlgorithm() const = 0; |
191 }; | 197 }; |
192 | 198 |
193 } // namespace net | 199 } // namespace net |
194 | 200 |
195 #endif // NET_QUIC_QUIC_SENT_PACKET_MANAGER_INTERFACE_H_ | 201 #endif // NET_QUIC_QUIC_SENT_PACKET_MANAGER_INTERFACE_H_ |
OLD | NEW |