OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_protocol.h" | 5 #include "net/quic/quic_protocol.h" |
6 | 6 |
7 #include "base/stl_util.h" | 7 #include "base/stl_util.h" |
8 #include "net/quic/quic_utils.h" | 8 #include "net/quic/quic_utils.h" |
9 | 9 |
10 using base::StringPiece; | 10 using base::StringPiece; |
(...skipping 606 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
617 return frames_.back(); | 617 return frames_.back(); |
618 } | 618 } |
619 | 619 |
620 const QuicFrame& RetransmittableFrames::AddNonStreamFrame( | 620 const QuicFrame& RetransmittableFrames::AddNonStreamFrame( |
621 const QuicFrame& frame) { | 621 const QuicFrame& frame) { |
622 DCHECK_NE(frame.type, STREAM_FRAME); | 622 DCHECK_NE(frame.type, STREAM_FRAME); |
623 frames_.push_back(frame); | 623 frames_.push_back(frame); |
624 return frames_.back(); | 624 return frames_.back(); |
625 } | 625 } |
626 | 626 |
| 627 void RetransmittableFrames::RemoveFramesForStream(QuicStreamId stream_id) { |
| 628 QuicFrames::iterator it = frames_.begin(); |
| 629 while (it != frames_.end()) { |
| 630 if (it->type != STREAM_FRAME || it->stream_frame->stream_id != stream_id) { |
| 631 ++it; |
| 632 continue; |
| 633 } |
| 634 delete it->stream_frame; |
| 635 it = frames_.erase(it); |
| 636 } |
| 637 } |
| 638 |
627 SerializedPacket::SerializedPacket( | 639 SerializedPacket::SerializedPacket( |
628 QuicPacketSequenceNumber sequence_number, | 640 QuicPacketSequenceNumber sequence_number, |
629 QuicSequenceNumberLength sequence_number_length, | 641 QuicSequenceNumberLength sequence_number_length, |
630 QuicEncryptedPacket* packet, | 642 QuicEncryptedPacket* packet, |
631 QuicPacketEntropyHash entropy_hash, | 643 QuicPacketEntropyHash entropy_hash, |
632 RetransmittableFrames* retransmittable_frames) | 644 RetransmittableFrames* retransmittable_frames) |
633 : sequence_number(sequence_number), | 645 : sequence_number(sequence_number), |
634 sequence_number_length(sequence_number_length), | 646 sequence_number_length(sequence_number_length), |
635 packet(packet), | 647 packet(packet), |
636 entropy_hash(entropy_hash), | 648 entropy_hash(entropy_hash), |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
677 bytes_sent(bytes_sent), | 689 bytes_sent(bytes_sent), |
678 nack_count(0), | 690 nack_count(0), |
679 transmission_type(transmission_type), | 691 transmission_type(transmission_type), |
680 all_transmissions(nullptr), | 692 all_transmissions(nullptr), |
681 in_flight(false), | 693 in_flight(false), |
682 is_unackable(false), | 694 is_unackable(false), |
683 is_fec_packet(is_fec_packet) { | 695 is_fec_packet(is_fec_packet) { |
684 } | 696 } |
685 | 697 |
686 } // namespace net | 698 } // namespace net |
OLD | NEW |