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_flags.h" | 8 #include "net/quic/quic_flags.h" |
9 #include "net/quic/quic_utils.h" | 9 #include "net/quic/quic_utils.h" |
10 | 10 |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 is_in_fec_group(NOT_IN_FEC_GROUP), | 84 is_in_fec_group(NOT_IN_FEC_GROUP), |
85 fec_group(0) {} | 85 fec_group(0) {} |
86 | 86 |
87 QuicPublicResetPacket::QuicPublicResetPacket() | 87 QuicPublicResetPacket::QuicPublicResetPacket() |
88 : nonce_proof(0), rejected_packet_number(0) {} | 88 : nonce_proof(0), rejected_packet_number(0) {} |
89 | 89 |
90 QuicPublicResetPacket::QuicPublicResetPacket( | 90 QuicPublicResetPacket::QuicPublicResetPacket( |
91 const QuicPacketPublicHeader& header) | 91 const QuicPacketPublicHeader& header) |
92 : public_header(header), nonce_proof(0), rejected_packet_number(0) {} | 92 : public_header(header), nonce_proof(0), rejected_packet_number(0) {} |
93 | 93 |
| 94 UniqueStreamBuffer NewStreamBuffer(size_t size) { |
| 95 return UniqueStreamBuffer(new char[size]); |
| 96 } |
| 97 |
94 QuicStreamFrame::QuicStreamFrame() : stream_id(0), fin(false), offset(0) { | 98 QuicStreamFrame::QuicStreamFrame() : stream_id(0), fin(false), offset(0) { |
95 } | 99 } |
96 | 100 |
97 QuicStreamFrame::QuicStreamFrame(const QuicStreamFrame& frame) | 101 QuicStreamFrame::QuicStreamFrame(const QuicStreamFrame& frame) |
98 : stream_id(frame.stream_id), | 102 : stream_id(frame.stream_id), |
99 fin(frame.fin), | 103 fin(frame.fin), |
100 offset(frame.offset), | 104 offset(frame.offset), |
101 data(frame.data) { | 105 data(frame.data) { |
102 } | 106 } |
103 | 107 |
(...skipping 709 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
813 case WINDOW_UPDATE_FRAME: | 817 case WINDOW_UPDATE_FRAME: |
814 delete it->window_update_frame; | 818 delete it->window_update_frame; |
815 break; | 819 break; |
816 case BLOCKED_FRAME: | 820 case BLOCKED_FRAME: |
817 delete it->blocked_frame; | 821 delete it->blocked_frame; |
818 break; | 822 break; |
819 case NUM_FRAME_TYPES: | 823 case NUM_FRAME_TYPES: |
820 DCHECK(false) << "Cannot delete type: " << it->type; | 824 DCHECK(false) << "Cannot delete type: " << it->type; |
821 } | 825 } |
822 } | 826 } |
| 827 // TODO(rtenneti): Delete the for loop once chrome has c++11 library support |
| 828 // for "std::vector<UniqueStreamBuffer> stream_data_;". |
823 for (const char* buffer : stream_data_) { | 829 for (const char* buffer : stream_data_) { |
824 delete[] buffer; | 830 delete[] buffer; |
825 } | 831 } |
826 } | 832 } |
827 | 833 |
828 const QuicFrame& RetransmittableFrames::AddFrame(const QuicFrame& frame) { | 834 const QuicFrame& RetransmittableFrames::AddFrame(const QuicFrame& frame) { |
829 return AddFrame(frame, nullptr); | 835 return AddFrame(frame, nullptr); |
830 } | 836 } |
831 | 837 |
832 const QuicFrame& RetransmittableFrames::AddFrame(const QuicFrame& frame, | 838 const QuicFrame& RetransmittableFrames::AddFrame(const QuicFrame& frame, |
833 char* buffer) { | 839 UniqueStreamBuffer buffer) { |
834 if (frame.type == STREAM_FRAME && | 840 if (frame.type == STREAM_FRAME && |
835 frame.stream_frame->stream_id == kCryptoStreamId) { | 841 frame.stream_frame->stream_id == kCryptoStreamId) { |
836 has_crypto_handshake_ = IS_HANDSHAKE; | 842 has_crypto_handshake_ = IS_HANDSHAKE; |
837 } | 843 } |
838 if (buffer != nullptr) { | 844 if (buffer != nullptr) { |
839 stream_data_.push_back(buffer); | 845 stream_data_.push_back(buffer.release()); |
840 } | 846 } |
841 frames_.push_back(frame); | 847 frames_.push_back(frame); |
842 return frames_.back(); | 848 return frames_.back(); |
843 } | 849 } |
844 | 850 |
845 void RetransmittableFrames::RemoveFramesForStream(QuicStreamId stream_id) { | 851 void RetransmittableFrames::RemoveFramesForStream(QuicStreamId stream_id) { |
846 QuicFrames::iterator it = frames_.begin(); | 852 QuicFrames::iterator it = frames_.begin(); |
847 while (it != frames_.end()) { | 853 while (it != frames_.end()) { |
848 if (it->type != STREAM_FRAME || it->stream_frame->stream_id != stream_id) { | 854 if (it->type != STREAM_FRAME || it->stream_frame->stream_id != stream_id) { |
849 ++it; | 855 ++it; |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
908 sent_time(sent_time), | 914 sent_time(sent_time), |
909 bytes_sent(bytes_sent), | 915 bytes_sent(bytes_sent), |
910 nack_count(0), | 916 nack_count(0), |
911 transmission_type(transmission_type), | 917 transmission_type(transmission_type), |
912 all_transmissions(nullptr), | 918 all_transmissions(nullptr), |
913 in_flight(false), | 919 in_flight(false), |
914 is_unackable(false), | 920 is_unackable(false), |
915 is_fec_packet(is_fec_packet) {} | 921 is_fec_packet(is_fec_packet) {} |
916 | 922 |
917 } // namespace net | 923 } // namespace net |
OLD | NEW |