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 #include "net/quic/core/quic_unacked_packet_map.h" | 5 #include "net/quic/core/quic_unacked_packet_map.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/stl_util.h" | 8 #include "base/stl_util.h" |
9 #include "net/quic/chromium/quic_utils_chromium.h" | 9 #include "net/quic/chromium/quic_utils_chromium.h" |
10 #include "net/quic/core/quic_bug_tracker.h" | 10 #include "net/quic/core/quic_bug_tracker.h" |
11 #include "net/quic/core/quic_connection_stats.h" | 11 #include "net/quic/core/quic_connection_stats.h" |
12 #include "net/quic/core/quic_flags.h" | 12 #include "net/quic/core/quic_flags.h" |
13 #include "net/quic/core/quic_utils.h" | 13 #include "net/quic/core/quic_utils.h" |
14 | 14 |
15 using std::max; | 15 using std::max; |
16 | 16 |
17 namespace net { | 17 namespace net { |
18 | 18 |
19 QuicUnackedPacketMap::QuicUnackedPacketMap() | 19 QuicUnackedPacketMap::QuicUnackedPacketMap() |
20 : largest_sent_packet_(0), | 20 : largest_sent_packet_(0), |
21 largest_sent_retransmittable_packet_(0), | 21 largest_sent_retransmittable_packet_(0), |
22 largest_observed_(0), | 22 largest_observed_(0), |
23 least_unacked_(1), | 23 least_unacked_(1), |
24 bytes_in_flight_(0), | 24 bytes_in_flight_(0), |
25 pending_crypto_packet_count_(0) {} | 25 pending_crypto_packet_count_(0) {} |
26 | 26 |
27 QuicUnackedPacketMap::~QuicUnackedPacketMap() { | 27 QuicUnackedPacketMap::~QuicUnackedPacketMap() { |
28 QuicPacketNumber index = least_unacked_; | 28 for (QuicTransmissionInfo& transmission_info : unacked_packets_) { |
29 for (UnackedPacketMap::iterator it = unacked_packets_.begin(); | 29 DeleteFrames(&(transmission_info.retransmittable_frames)); |
30 it != unacked_packets_.end(); ++it, ++index) { | |
31 DeleteFrames(&it->retransmittable_frames); | |
32 } | 30 } |
33 } | 31 } |
34 | 32 |
35 void QuicUnackedPacketMap::AddSentPacket(SerializedPacket* packet, | 33 void QuicUnackedPacketMap::AddSentPacket(SerializedPacket* packet, |
36 QuicPacketNumber old_packet_number, | 34 QuicPacketNumber old_packet_number, |
37 TransmissionType transmission_type, | 35 TransmissionType transmission_type, |
38 QuicTime sent_time, | 36 QuicTime sent_time, |
39 bool set_in_flight) { | 37 bool set_in_flight) { |
40 QuicPacketNumber packet_number = packet->packet_number; | 38 QuicPacketNumber packet_number = packet->packet_number; |
41 QuicPacketLength bytes_sent = packet->encrypted_length; | 39 QuicPacketLength bytes_sent = packet->encrypted_length; |
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
355 } | 353 } |
356 } | 354 } |
357 return false; | 355 return false; |
358 } | 356 } |
359 | 357 |
360 QuicPacketNumber QuicUnackedPacketMap::GetLeastUnacked() const { | 358 QuicPacketNumber QuicUnackedPacketMap::GetLeastUnacked() const { |
361 return least_unacked_; | 359 return least_unacked_; |
362 } | 360 } |
363 | 361 |
364 } // namespace net | 362 } // namespace net |
OLD | NEW |