| 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 |