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 <map> | 8 #include <map> |
9 #include <set> | 9 #include <set> |
10 #include <utility> | 10 #include <utility> |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 // Called when congestion window may have changed. | 67 // Called when congestion window may have changed. |
68 virtual void OnCongestionWindowChange() = 0; | 68 virtual void OnCongestionWindowChange() = 0; |
69 | 69 |
70 // Called when RTT may have changed, including when an RTT is read from | 70 // Called when RTT may have changed, including when an RTT is read from |
71 // the config. | 71 // the config. |
72 virtual void OnRttChange() = 0; | 72 virtual void OnRttChange() = 0; |
73 }; | 73 }; |
74 | 74 |
75 // Struct to store the pending retransmission information. | 75 // Struct to store the pending retransmission information. |
76 struct PendingRetransmission { | 76 struct PendingRetransmission { |
77 PendingRetransmission(QuicPacketNumber packet_number, | 77 PendingRetransmission(QuicPathId path_id, |
| 78 QuicPacketNumber packet_number, |
78 TransmissionType transmission_type, | 79 TransmissionType transmission_type, |
79 const RetransmittableFrames& retransmittable_frames, | 80 const RetransmittableFrames& retransmittable_frames, |
80 EncryptionLevel encryption_level, | 81 EncryptionLevel encryption_level, |
81 QuicPacketNumberLength packet_number_length) | 82 QuicPacketNumberLength packet_number_length) |
82 : packet_number(packet_number), | 83 : path_id(path_id), |
| 84 packet_number(packet_number), |
83 transmission_type(transmission_type), | 85 transmission_type(transmission_type), |
84 retransmittable_frames(retransmittable_frames), | 86 retransmittable_frames(retransmittable_frames), |
85 encryption_level(encryption_level), | 87 encryption_level(encryption_level), |
86 packet_number_length(packet_number_length) {} | 88 packet_number_length(packet_number_length) {} |
87 | 89 |
| 90 QuicPathId path_id; |
88 QuicPacketNumber packet_number; | 91 QuicPacketNumber packet_number; |
89 TransmissionType transmission_type; | 92 TransmissionType transmission_type; |
90 const RetransmittableFrames& retransmittable_frames; | 93 const RetransmittableFrames& retransmittable_frames; |
91 EncryptionLevel encryption_level; | 94 EncryptionLevel encryption_level; |
92 QuicPacketNumberLength packet_number_length; | 95 QuicPacketNumberLength packet_number_length; |
93 }; | 96 }; |
94 | 97 |
95 QuicSentPacketManager(Perspective perspective, | 98 QuicSentPacketManager(Perspective perspective, |
| 99 QuicPathId path_id, |
96 const QuicClock* clock, | 100 const QuicClock* clock, |
97 QuicConnectionStats* stats, | 101 QuicConnectionStats* stats, |
98 CongestionControlType congestion_control_type, | 102 CongestionControlType congestion_control_type, |
99 LossDetectionType loss_type); | 103 LossDetectionType loss_type); |
100 virtual ~QuicSentPacketManager(); | 104 virtual ~QuicSentPacketManager(); |
101 | 105 |
102 virtual void SetFromConfig(const QuicConfig& config); | 106 virtual void SetFromConfig(const QuicConfig& config); |
103 | 107 |
104 // Pass the CachedNetworkParameters to the send algorithm. | 108 // Pass the CachedNetworkParameters to the send algorithm. |
105 void ResumeConnectionState( | 109 void ResumeConnectionState( |
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
351 // be removed from the map and the new entry's retransmittable frames will be | 355 // be removed from the map and the new entry's retransmittable frames will be |
352 // set to nullptr. | 356 // set to nullptr. |
353 QuicUnackedPacketMap unacked_packets_; | 357 QuicUnackedPacketMap unacked_packets_; |
354 | 358 |
355 // Pending retransmissions which have not been packetized and sent yet. | 359 // Pending retransmissions which have not been packetized and sent yet. |
356 PendingRetransmissionMap pending_retransmissions_; | 360 PendingRetransmissionMap pending_retransmissions_; |
357 | 361 |
358 // Tracks if the connection was created by the server or the client. | 362 // Tracks if the connection was created by the server or the client. |
359 Perspective perspective_; | 363 Perspective perspective_; |
360 | 364 |
| 365 QuicPathId path_id_; |
| 366 |
361 const QuicClock* clock_; | 367 const QuicClock* clock_; |
362 QuicConnectionStats* stats_; | 368 QuicConnectionStats* stats_; |
363 DebugDelegate* debug_delegate_; | 369 DebugDelegate* debug_delegate_; |
364 NetworkChangeVisitor* network_change_visitor_; | 370 NetworkChangeVisitor* network_change_visitor_; |
365 const QuicPacketCount initial_congestion_window_; | 371 const QuicPacketCount initial_congestion_window_; |
366 RttStats rtt_stats_; | 372 RttStats rtt_stats_; |
367 scoped_ptr<SendAlgorithmInterface> send_algorithm_; | 373 scoped_ptr<SendAlgorithmInterface> send_algorithm_; |
368 scoped_ptr<LossDetectionInterface> loss_algorithm_; | 374 scoped_ptr<LossDetectionInterface> loss_algorithm_; |
369 bool n_connection_simulation_; | 375 bool n_connection_simulation_; |
370 | 376 |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
410 // Records bandwidth from server to client in normal operation, over periods | 416 // Records bandwidth from server to client in normal operation, over periods |
411 // of time with no loss events. | 417 // of time with no loss events. |
412 QuicSustainedBandwidthRecorder sustained_bandwidth_recorder_; | 418 QuicSustainedBandwidthRecorder sustained_bandwidth_recorder_; |
413 | 419 |
414 DISALLOW_COPY_AND_ASSIGN(QuicSentPacketManager); | 420 DISALLOW_COPY_AND_ASSIGN(QuicSentPacketManager); |
415 }; | 421 }; |
416 | 422 |
417 } // namespace net | 423 } // namespace net |
418 | 424 |
419 #endif // NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ | 425 #endif // NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ |
OLD | NEW |