OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 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_H_ | 5 #ifndef NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ |
6 #define NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ | 6 #define NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include <map> | 10 #include <map> |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 void SetNumOpenStreams(size_t num_streams) override; | 86 void SetNumOpenStreams(size_t num_streams) override; |
87 | 87 |
88 void SetMaxPacingRate(QuicBandwidth max_pacing_rate) override; | 88 void SetMaxPacingRate(QuicBandwidth max_pacing_rate) override; |
89 | 89 |
90 void SetHandshakeConfirmed() override; | 90 void SetHandshakeConfirmed() override; |
91 | 91 |
92 // Processes the incoming ack. | 92 // Processes the incoming ack. |
93 void OnIncomingAck(const QuicAckFrame& ack_frame, | 93 void OnIncomingAck(const QuicAckFrame& ack_frame, |
94 QuicTime ack_receive_time) override; | 94 QuicTime ack_receive_time) override; |
95 | 95 |
96 // Returns true if packet |packet_number| is unacked. | |
97 bool IsUnacked(QuicPathId, QuicPacketNumber packet_number) const override; | |
98 | |
99 // Requests retransmission of all unacked packets of |retransmission_type|. | 96 // Requests retransmission of all unacked packets of |retransmission_type|. |
100 // The behavior of this method depends on the value of |retransmission_type|: | 97 // The behavior of this method depends on the value of |retransmission_type|: |
101 // ALL_UNACKED_RETRANSMISSION - All unacked packets will be retransmitted. | 98 // ALL_UNACKED_RETRANSMISSION - All unacked packets will be retransmitted. |
102 // This can happen, for example, after a version negotiation packet has been | 99 // This can happen, for example, after a version negotiation packet has been |
103 // received and all packets needs to be retransmitted with the new version. | 100 // received and all packets needs to be retransmitted with the new version. |
104 // ALL_INITIAL_RETRANSMISSION - Only initially encrypted packets will be | 101 // ALL_INITIAL_RETRANSMISSION - Only initially encrypted packets will be |
105 // retransmitted. This can happen, for example, when a CHLO has been rejected | 102 // retransmitted. This can happen, for example, when a CHLO has been rejected |
106 // and the previously encrypted data needs to be encrypted with a new key. | 103 // and the previously encrypted data needs to be encrypted with a new key. |
107 void RetransmitUnackedPackets(TransmissionType retransmission_type) override; | 104 void RetransmitUnackedPackets(TransmissionType retransmission_type) override; |
108 | 105 |
109 // Retransmits the oldest pending packet there is still a tail loss probe | 106 // Retransmits the oldest pending packet there is still a tail loss probe |
110 // pending. Invoked after OnRetransmissionTimeout. | 107 // pending. Invoked after OnRetransmissionTimeout. |
111 bool MaybeRetransmitTailLossProbe() override; | 108 bool MaybeRetransmitTailLossProbe() override; |
112 | 109 |
113 // Removes the retransmittable frames from all unencrypted packets to ensure | 110 // Removes the retransmittable frames from all unencrypted packets to ensure |
114 // they don't get retransmitted. | 111 // they don't get retransmitted. |
115 void NeuterUnencryptedPackets() override; | 112 void NeuterUnencryptedPackets() override; |
116 | 113 |
117 // Returns true if the unacked packet |packet_number| has retransmittable | |
118 // frames. This will only return false if the packet has been acked, if a | |
119 // previous transmission of this packet was ACK'd, or if this packet has been | |
120 // retransmitted as with different packet number. | |
121 bool HasRetransmittableFrames(QuicPathId, | |
122 QuicPacketNumber packet_number) const override; | |
123 | |
124 // Returns true if there are pending retransmissions. | 114 // Returns true if there are pending retransmissions. |
125 // Not const because retransmissions may be cancelled before returning. | 115 // Not const because retransmissions may be cancelled before returning. |
126 bool HasPendingRetransmissions() const override; | 116 bool HasPendingRetransmissions() const override; |
127 | 117 |
128 // Retrieves the next pending retransmission. You must ensure that | 118 // Retrieves the next pending retransmission. You must ensure that |
129 // there are pending retransmissions prior to calling this function. | 119 // there are pending retransmissions prior to calling this function. |
130 PendingRetransmission NextPendingRetransmission() override; | 120 PendingRetransmission NextPendingRetransmission() override; |
131 | 121 |
132 bool HasUnackedPackets() const override; | 122 bool HasUnackedPackets() const override; |
133 | 123 |
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
403 // Records bandwidth from server to client in normal operation, over periods | 393 // Records bandwidth from server to client in normal operation, over periods |
404 // of time with no loss events. | 394 // of time with no loss events. |
405 QuicSustainedBandwidthRecorder sustained_bandwidth_recorder_; | 395 QuicSustainedBandwidthRecorder sustained_bandwidth_recorder_; |
406 | 396 |
407 DISALLOW_COPY_AND_ASSIGN(QuicSentPacketManager); | 397 DISALLOW_COPY_AND_ASSIGN(QuicSentPacketManager); |
408 }; | 398 }; |
409 | 399 |
410 } // namespace net | 400 } // namespace net |
411 | 401 |
412 #endif // NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ | 402 #endif // NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ |
OLD | NEW |