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> |
11 #include <memory> | 11 #include <memory> |
12 #include <set> | 12 #include <set> |
13 #include <utility> | 13 #include <utility> |
14 #include <vector> | 14 #include <vector> |
15 | 15 |
16 #include "base/macros.h" | 16 #include "base/macros.h" |
17 #include "net/base/linked_hash_map.h" | 17 #include "net/base/linked_hash_map.h" |
| 18 #include "net/quic/core/congestion_control/general_loss_algorithm.h" |
18 #include "net/quic/core/congestion_control/loss_detection_interface.h" | 19 #include "net/quic/core/congestion_control/loss_detection_interface.h" |
19 #include "net/quic/core/congestion_control/pacing_sender.h" | 20 #include "net/quic/core/congestion_control/pacing_sender.h" |
20 #include "net/quic/core/congestion_control/rtt_stats.h" | 21 #include "net/quic/core/congestion_control/rtt_stats.h" |
21 #include "net/quic/core/congestion_control/send_algorithm_interface.h" | 22 #include "net/quic/core/congestion_control/send_algorithm_interface.h" |
22 #include "net/quic/core/quic_protocol.h" | 23 #include "net/quic/core/quic_protocol.h" |
23 #include "net/quic/core/quic_sent_packet_manager_interface.h" | 24 #include "net/quic/core/quic_sent_packet_manager_interface.h" |
24 #include "net/quic/core/quic_unacked_packet_map.h" | 25 #include "net/quic/core/quic_unacked_packet_map.h" |
25 | 26 |
26 namespace net { | 27 namespace net { |
27 | 28 |
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
336 QuicConnectionStats* stats_; | 337 QuicConnectionStats* stats_; |
337 | 338 |
338 // Pending retransmissions are managed by delegate_ if it is not null. | 339 // Pending retransmissions are managed by delegate_ if it is not null. |
339 MultipathDelegateInterface* delegate_; // Not owned. | 340 MultipathDelegateInterface* delegate_; // Not owned. |
340 | 341 |
341 DebugDelegate* debug_delegate_; | 342 DebugDelegate* debug_delegate_; |
342 NetworkChangeVisitor* network_change_visitor_; | 343 NetworkChangeVisitor* network_change_visitor_; |
343 const QuicPacketCount initial_congestion_window_; | 344 const QuicPacketCount initial_congestion_window_; |
344 RttStats rtt_stats_; | 345 RttStats rtt_stats_; |
345 std::unique_ptr<SendAlgorithmInterface> send_algorithm_; | 346 std::unique_ptr<SendAlgorithmInterface> send_algorithm_; |
346 std::unique_ptr<LossDetectionInterface> loss_algorithm_; | 347 // Not owned. Always points to |general_loss_algorithm_| outside of tests. |
| 348 LossDetectionInterface* loss_algorithm_; |
| 349 GeneralLossAlgorithm general_loss_algorithm_; |
347 bool n_connection_simulation_; | 350 bool n_connection_simulation_; |
348 | 351 |
349 // Receiver side buffer in bytes. | 352 // Receiver side buffer in bytes. |
350 QuicByteCount receive_buffer_bytes_; | 353 QuicByteCount receive_buffer_bytes_; |
351 | 354 |
352 // Least packet number which the peer is still waiting for. | 355 // Least packet number which the peer is still waiting for. |
353 QuicPacketNumber least_packet_awaited_by_peer_; | 356 QuicPacketNumber least_packet_awaited_by_peer_; |
354 | 357 |
355 // Tracks the first RTO packet. If any packet before that packet gets acked, | 358 // Tracks the first RTO packet. If any packet before that packet gets acked, |
356 // it indicates the RTO was spurious and should be reversed(F-RTO). | 359 // it indicates the RTO was spurious and should be reversed(F-RTO). |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
398 // Records bandwidth from server to client in normal operation, over periods | 401 // Records bandwidth from server to client in normal operation, over periods |
399 // of time with no loss events. | 402 // of time with no loss events. |
400 QuicSustainedBandwidthRecorder sustained_bandwidth_recorder_; | 403 QuicSustainedBandwidthRecorder sustained_bandwidth_recorder_; |
401 | 404 |
402 DISALLOW_COPY_AND_ASSIGN(QuicSentPacketManager); | 405 DISALLOW_COPY_AND_ASSIGN(QuicSentPacketManager); |
403 }; | 406 }; |
404 | 407 |
405 } // namespace net | 408 } // namespace net |
406 | 409 |
407 #endif // NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ | 410 #endif // NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ |
OLD | NEW |