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

Side by Side Diff: net/quic/quic_received_packet_manager.cc

Issue 862133002: Update from https://crrev.com/312398 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 11 months 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
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 #include "net/quic/quic_received_packet_manager.h" 5 #include "net/quic/quic_received_packet_manager.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 } 125 }
126 126
127 void QuicReceivedPacketManager::EntropyTracker:: 127 void QuicReceivedPacketManager::EntropyTracker::
128 AdvanceFirstGapAndGarbageCollectEntropyMap() { 128 AdvanceFirstGapAndGarbageCollectEntropyMap() {
129 while (!packets_entropy_.empty() && packets_entropy_.front().second) { 129 while (!packets_entropy_.empty() && packets_entropy_.front().second) {
130 ++first_gap_; 130 ++first_gap_;
131 packets_entropy_.pop_front(); 131 packets_entropy_.pop_front();
132 } 132 }
133 } 133 }
134 134
135 QuicReceivedPacketManager::QuicReceivedPacketManager( 135 QuicReceivedPacketManager::QuicReceivedPacketManager(QuicConnectionStats* stats)
136 QuicConnectionStats* stats)
137 : peer_least_packet_awaiting_ack_(0), 136 : peer_least_packet_awaiting_ack_(0),
138 time_largest_observed_(QuicTime::Zero()), 137 time_largest_observed_(QuicTime::Zero()),
139 receive_algorithm_(ReceiveAlgorithmInterface::Create(kTCP)), 138 receive_algorithm_(ReceiveAlgorithmInterface::Create()),
140 stats_(stats) { 139 stats_(stats) {
141 ack_frame_.largest_observed = 0; 140 ack_frame_.largest_observed = 0;
142 ack_frame_.entropy_hash = 0; 141 ack_frame_.entropy_hash = 0;
143 } 142 }
144 143
145 QuicReceivedPacketManager::~QuicReceivedPacketManager() {} 144 QuicReceivedPacketManager::~QuicReceivedPacketManager() {}
146 145
147 void QuicReceivedPacketManager::RecordPacketReceived( 146 void QuicReceivedPacketManager::RecordPacketReceived(
148 QuicByteCount bytes, 147 QuicByteCount bytes,
149 const QuicPacketHeader& header, 148 const QuicPacketHeader& header,
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 QuicTime::Delta::Zero() : 234 QuicTime::Delta::Zero() :
236 approximate_now.Subtract(time_largest_observed_); 235 approximate_now.Subtract(time_largest_observed_);
237 236
238 // Remove all packets that are too far from largest_observed to express. 237 // Remove all packets that are too far from largest_observed to express.
239 received_packet_times_.remove_if(isTooLarge(ack_frame_.largest_observed)); 238 received_packet_times_.remove_if(isTooLarge(ack_frame_.largest_observed));
240 239
241 ack_frame->received_packet_times = received_packet_times_; 240 ack_frame->received_packet_times = received_packet_times_;
242 received_packet_times_.clear(); 241 received_packet_times_.clear();
243 } 242 }
244 243
245 bool QuicReceivedPacketManager::GenerateCongestionFeedback(
246 QuicCongestionFeedbackFrame* feedback) {
247 return receive_algorithm_->GenerateCongestionFeedback(feedback);
248 }
249
250 QuicPacketEntropyHash QuicReceivedPacketManager::EntropyHash( 244 QuicPacketEntropyHash QuicReceivedPacketManager::EntropyHash(
251 QuicPacketSequenceNumber sequence_number) const { 245 QuicPacketSequenceNumber sequence_number) const {
252 return entropy_tracker_.EntropyHash(sequence_number); 246 return entropy_tracker_.EntropyHash(sequence_number);
253 } 247 }
254 248
255 bool QuicReceivedPacketManager::DontWaitForPacketsBefore( 249 bool QuicReceivedPacketManager::DontWaitForPacketsBefore(
256 QuicPacketSequenceNumber least_unacked) { 250 QuicPacketSequenceNumber least_unacked) {
257 ack_frame_.revived_packets.erase( 251 ack_frame_.revived_packets.erase(
258 ack_frame_.revived_packets.begin(), 252 ack_frame_.revived_packets.begin(),
259 ack_frame_.revived_packets.lower_bound(least_unacked)); 253 ack_frame_.revived_packets.lower_bound(least_unacked));
(...skipping 28 matching lines...) Expand all
288 return !ack_frame_.missing_packets.empty() && 282 return !ack_frame_.missing_packets.empty() &&
289 (ack_frame_.largest_observed - 283 (ack_frame_.largest_observed -
290 *ack_frame_.missing_packets.rbegin()) <= kMaxPacketsAfterNewMissing; 284 *ack_frame_.missing_packets.rbegin()) <= kMaxPacketsAfterNewMissing;
291 } 285 }
292 286
293 size_t QuicReceivedPacketManager::NumTrackedPackets() const { 287 size_t QuicReceivedPacketManager::NumTrackedPackets() const {
294 return entropy_tracker_.size(); 288 return entropy_tracker_.size();
295 } 289 }
296 290
297 } // namespace net 291 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698