Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(252)

Side by Side Diff: net/quic/core/quic_sent_packet_manager.h

Issue 2531163009: Move QuicAckListenerInterface, QuicPendingRetransmission, and QuicTransmissionInfo out of quic_pack… (Closed)
Patch Set: Move QuicAckListenerInterface, QuicPendingRetransmission, and QuicTransmissionInfo out of quic_pack… Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/quic/core/quic_pending_retransmission.h ('k') | net/quic/core/quic_sent_packet_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 // Removes the retransmittable frames from all unencrypted packets to ensure 113 // Removes the retransmittable frames from all unencrypted packets to ensure
114 // they don't get retransmitted. 114 // they don't get retransmitted.
115 void NeuterUnencryptedPackets() override; 115 void NeuterUnencryptedPackets() override;
116 116
117 // Returns true if there are pending retransmissions. 117 // Returns true if there are pending retransmissions.
118 // Not const because retransmissions may be cancelled before returning. 118 // Not const because retransmissions may be cancelled before returning.
119 bool HasPendingRetransmissions() const override; 119 bool HasPendingRetransmissions() const override;
120 120
121 // Retrieves the next pending retransmission. You must ensure that 121 // Retrieves the next pending retransmission. You must ensure that
122 // there are pending retransmissions prior to calling this function. 122 // there are pending retransmissions prior to calling this function.
123 PendingRetransmission NextPendingRetransmission() override; 123 QuicPendingRetransmission NextPendingRetransmission() override;
124 124
125 bool HasUnackedPackets() const override; 125 bool HasUnackedPackets() const override;
126 126
127 // Returns the smallest packet number of a serialized packet which has not 127 // Returns the smallest packet number of a serialized packet which has not
128 // been acked by the peer. 128 // been acked by the peer.
129 QuicPacketNumber GetLeastUnacked(QuicPathId) const override; 129 QuicPacketNumber GetLeastUnacked(QuicPathId) const override;
130 130
131 // Called when we have sent bytes to the peer. This informs the manager both 131 // Called when we have sent bytes to the peer. This informs the manager both
132 // the number of bytes sent and if they were retransmitted. Returns true if 132 // the number of bytes sent and if they were retransmitted. Returns true if
133 // the sender should reset the retransmission timer. 133 // the sender should reset the retransmission timer.
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 250
251 // Returns the timer for a new tail loss probe. 251 // Returns the timer for a new tail loss probe.
252 const QuicTime::Delta GetTailLossProbeDelay() const; 252 const QuicTime::Delta GetTailLossProbeDelay() const;
253 253
254 // Returns the retransmission timeout, after which a full RTO occurs. 254 // Returns the retransmission timeout, after which a full RTO occurs.
255 const QuicTime::Delta GetRetransmissionDelay() const; 255 const QuicTime::Delta GetRetransmissionDelay() const;
256 256
257 // Returns the newest transmission associated with a packet. 257 // Returns the newest transmission associated with a packet.
258 QuicPacketNumber GetNewestRetransmission( 258 QuicPacketNumber GetNewestRetransmission(
259 QuicPacketNumber packet_number, 259 QuicPacketNumber packet_number,
260 const TransmissionInfo& transmission_info) const; 260 const QuicTransmissionInfo& transmission_info) const;
261 261
262 // Update the RTT if the ack is for the largest acked packet number. 262 // Update the RTT if the ack is for the largest acked packet number.
263 // Returns true if the rtt was updated. 263 // Returns true if the rtt was updated.
264 bool MaybeUpdateRTT(const QuicAckFrame& ack_frame, QuicTime ack_receive_time); 264 bool MaybeUpdateRTT(const QuicAckFrame& ack_frame, QuicTime ack_receive_time);
265 265
266 // Invokes the loss detection algorithm and loses and retransmits packets if 266 // Invokes the loss detection algorithm and loses and retransmits packets if
267 // necessary. 267 // necessary.
268 void InvokeLossDetection(QuicTime time); 268 void InvokeLossDetection(QuicTime time);
269 269
270 // Invokes OnCongestionEvent if |rtt_updated| is true, there are pending acks, 270 // Invokes OnCongestionEvent if |rtt_updated| is true, there are pending acks,
(...skipping 13 matching lines...) Expand all
284 // landed. 284 // landed.
285 // The packet needs no longer to be retransmitted, but the packet remains 285 // The packet needs no longer to be retransmitted, but the packet remains
286 // pending if it is and the congestion control does not consider the packet 286 // pending if it is and the congestion control does not consider the packet
287 // acked. 287 // acked.
288 void MarkPacketNotRetransmittable(QuicPacketNumber packet_number, 288 void MarkPacketNotRetransmittable(QuicPacketNumber packet_number,
289 QuicTime::Delta ack_delay_time); 289 QuicTime::Delta ack_delay_time);
290 290
291 // Removes the retransmittability and in flight properties from the packet at 291 // Removes the retransmittability and in flight properties from the packet at
292 // |info| due to receipt by the peer. 292 // |info| due to receipt by the peer.
293 void MarkPacketHandled(QuicPacketNumber packet_number, 293 void MarkPacketHandled(QuicPacketNumber packet_number,
294 TransmissionInfo* info, 294 QuicTransmissionInfo* info,
295 QuicTime::Delta ack_delay_time); 295 QuicTime::Delta ack_delay_time);
296 296
297 // Request that |packet_number| be retransmitted after the other pending 297 // Request that |packet_number| be retransmitted after the other pending
298 // retransmissions. Does not add it to the retransmissions if it's already 298 // retransmissions. Does not add it to the retransmissions if it's already
299 // a pending retransmission. 299 // a pending retransmission.
300 void MarkForRetransmission(QuicPacketNumber packet_number, 300 void MarkForRetransmission(QuicPacketNumber packet_number,
301 TransmissionType transmission_type); 301 TransmissionType transmission_type);
302 302
303 // Notify observers that packet with TransmissionInfo |info| is a spurious 303 // Notify observers that packet with QuicTransmissionInfo |info| is a spurious
304 // retransmission. It is caller's responsibility to guarantee the packet with 304 // retransmission. It is caller's responsibility to guarantee the packet with
305 // TransmissionInfo |info| is a spurious retransmission before calling this 305 // QuicTransmissionInfo |info| is a spurious retransmission before calling
306 // function. 306 // this function.
307 void RecordOneSpuriousRetransmission(const TransmissionInfo& info); 307 void RecordOneSpuriousRetransmission(const QuicTransmissionInfo& info);
308 308
309 // Notify observers about spurious retransmits of packet with TransmissionInfo 309 // Notify observers about spurious retransmits of packet with
310 // |info|. 310 // QuicTransmissionInfo |info|.
311 void RecordSpuriousRetransmissions(const TransmissionInfo& info, 311 void RecordSpuriousRetransmissions(const QuicTransmissionInfo& info,
312 QuicPacketNumber acked_packet_number); 312 QuicPacketNumber acked_packet_number);
313 313
314 // Returns mutable TransmissionInfo associated with |packet_number|, which 314 // Returns mutable QuicTransmissionInfo associated with |packet_number|, which
315 // must be unacked. 315 // must be unacked.
316 TransmissionInfo* GetMutableTransmissionInfo(QuicPacketNumber packet_number); 316 QuicTransmissionInfo* GetMutableTransmissionInfo(
317 QuicPacketNumber packet_number);
317 318
318 // Remove any packets no longer needed for retransmission, congestion, or 319 // Remove any packets no longer needed for retransmission, congestion, or
319 // RTT measurement purposes. 320 // RTT measurement purposes.
320 void RemoveObsoletePackets(); 321 void RemoveObsoletePackets();
321 322
322 // Sets the send algorithm to the given congestion control type and points the 323 // Sets the send algorithm to the given congestion control type and points the
323 // pacing sender at |send_algorithm_|. Can be called any number of times. 324 // pacing sender at |send_algorithm_|. Can be called any number of times.
324 void SetSendAlgorithm(CongestionControlType congestion_control_type); 325 void SetSendAlgorithm(CongestionControlType congestion_control_type);
325 326
326 // Sets the send algorithm to |send_algorithm| and points the pacing sender at 327 // Sets the send algorithm to |send_algorithm| and points the pacing sender at
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 // Records bandwidth from server to client in normal operation, over periods 415 // Records bandwidth from server to client in normal operation, over periods
415 // of time with no loss events. 416 // of time with no loss events.
416 QuicSustainedBandwidthRecorder sustained_bandwidth_recorder_; 417 QuicSustainedBandwidthRecorder sustained_bandwidth_recorder_;
417 418
418 DISALLOW_COPY_AND_ASSIGN(QuicSentPacketManager); 419 DISALLOW_COPY_AND_ASSIGN(QuicSentPacketManager);
419 }; 420 };
420 421
421 } // namespace net 422 } // namespace net
422 423
423 #endif // NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ 424 #endif // NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_
OLDNEW
« no previous file with comments | « net/quic/core/quic_pending_retransmission.h ('k') | net/quic/core/quic_sent_packet_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698