| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 // A test only class to enable simulations of send algorithms. | 5 // A test only class to enable simulations of send algorithms. |
| 6 | 6 |
| 7 #ifndef NET_QUIC_CONGESTION_CONTROL_SEND_ALGORITHM_SIMULATOR_H_ | 7 #ifndef NET_QUIC_CONGESTION_CONTROL_SEND_ALGORITHM_SIMULATOR_H_ |
| 8 #define NET_QUIC_CONGESTION_CONTROL_SEND_ALGORITHM_SIMULATOR_H_ | 8 #define NET_QUIC_CONGESTION_CONTROL_SEND_ALGORITHM_SIMULATOR_H_ |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 bool lost; | 115 bool lost; |
| 116 Transfer* transfer; | 116 Transfer* transfer; |
| 117 }; | 117 }; |
| 118 | 118 |
| 119 // |rtt_stats| should be the same RttStats used by the |send_algorithm|. | 119 // |rtt_stats| should be the same RttStats used by the |send_algorithm|. |
| 120 SendAlgorithmSimulator(MockClock* clock_, | 120 SendAlgorithmSimulator(MockClock* clock_, |
| 121 QuicBandwidth bandwidth, | 121 QuicBandwidth bandwidth, |
| 122 QuicTime::Delta rtt); | 122 QuicTime::Delta rtt); |
| 123 ~SendAlgorithmSimulator(); | 123 ~SendAlgorithmSimulator(); |
| 124 | 124 |
| 125 // For local ad-hoc testing. |
| 125 void set_bandwidth(QuicBandwidth bandwidth) { | 126 void set_bandwidth(QuicBandwidth bandwidth) { |
| 126 bandwidth_ = bandwidth; | 127 bandwidth_ = bandwidth; |
| 127 } | 128 } |
| 128 | 129 |
| 129 void set_forward_loss_rate(float loss_rate) { | 130 void set_forward_loss_rate(float loss_rate) { |
| 130 DCHECK_LT(loss_rate, 1.0f); | 131 DCHECK_LT(loss_rate, 1.0f); |
| 131 forward_loss_rate_ = loss_rate; | 132 forward_loss_rate_ = loss_rate; |
| 132 } | 133 } |
| 133 | 134 |
| 135 // For local ad-hoc testing. |
| 134 void set_reverse_loss_rate(float loss_rate) { | 136 void set_reverse_loss_rate(float loss_rate) { |
| 135 DCHECK_LT(loss_rate, 1.0f); | 137 DCHECK_LT(loss_rate, 1.0f); |
| 136 reverse_loss_rate_ = loss_rate; | 138 reverse_loss_rate_ = loss_rate; |
| 137 } | 139 } |
| 138 | 140 |
| 141 // For local ad-hoc testing. |
| 139 void set_loss_correlation(float loss_correlation) { | 142 void set_loss_correlation(float loss_correlation) { |
| 140 DCHECK_LT(loss_correlation, 1.0f); | 143 DCHECK_LT(loss_correlation, 1.0f); |
| 141 loss_correlation_ = loss_correlation; | 144 loss_correlation_ = loss_correlation; |
| 142 } | 145 } |
| 143 | 146 |
| 144 void set_buffer_size(size_t buffer_size_bytes) { | 147 void set_buffer_size(size_t buffer_size_bytes) { |
| 145 buffer_size_ = buffer_size_bytes; | 148 buffer_size_ = buffer_size_bytes; |
| 146 } | 149 } |
| 147 | 150 |
| 148 void set_delayed_ack_timer(QuicTime::Delta delayed_ack_timer) { | 151 void set_delayed_ack_timer(QuicTime::Delta delayed_ack_timer) { |
| 149 delayed_ack_timer_ = delayed_ack_timer; | 152 delayed_ack_timer_ = delayed_ack_timer; |
| 150 } | 153 } |
| 151 | 154 |
| 152 // Advance the time by |delta| without sending anything. | 155 // Advance the time by |delta| without sending anything. |
| 156 // For local ad-hoc testing. |
| 153 void AdvanceTime(QuicTime::Delta delta); | 157 void AdvanceTime(QuicTime::Delta delta); |
| 154 | 158 |
| 155 // Adds a pending sender. The send will run when TransferBytes is called. | 159 // Adds a pending sender. The send will run when TransferBytes is called. |
| 156 // Adding two transfers with the same sender is unsupported. | 160 // Adding two transfers with the same sender is unsupported. |
| 157 void AddTransfer(Sender* sender, size_t num_bytes); | 161 void AddTransfer(Sender* sender, size_t num_bytes); |
| 158 | 162 |
| 159 // Adds a pending sending to start at the specified time. | 163 // Adds a pending sending to start at the specified time. |
| 160 void AddTransfer(Sender* sender, | 164 void AddTransfer(Sender* sender, |
| 161 size_t num_bytes, | 165 size_t num_bytes, |
| 162 QuicTime start_time, | 166 QuicTime start_time, |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 228 QuicTime::Delta rtt_; | 232 QuicTime::Delta rtt_; |
| 229 size_t buffer_size_; // In bytes. | 233 size_t buffer_size_; // In bytes. |
| 230 QuicTime::Delta delayed_ack_timer_; | 234 QuicTime::Delta delayed_ack_timer_; |
| 231 | 235 |
| 232 DISALLOW_COPY_AND_ASSIGN(SendAlgorithmSimulator); | 236 DISALLOW_COPY_AND_ASSIGN(SendAlgorithmSimulator); |
| 233 }; | 237 }; |
| 234 | 238 |
| 235 } // namespace net | 239 } // namespace net |
| 236 | 240 |
| 237 #endif // NET_QUIC_CONGESTION_CONTROL_SEND_ALGORITHM_SIMULATOR_H_ | 241 #endif // NET_QUIC_CONGESTION_CONTROL_SEND_ALGORITHM_SIMULATOR_H_ |
| OLD | NEW |