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_packet_creator.h" | 5 #include "net/quic/quic_packet_creator.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "net/quic/crypto/quic_random.h" | 9 #include "net/quic/crypto/quic_random.h" |
10 #include "net/quic/quic_ack_notifier.h" | 10 #include "net/quic/quic_ack_notifier.h" |
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 | 254 |
255 bool set_fin = fin && bytes_consumed == data_size; // Last frame. | 255 bool set_fin = fin && bytes_consumed == data_size; // Last frame. |
256 IOVector frame_data; | 256 IOVector frame_data; |
257 frame_data.AppendIovecAtMostBytes(data.iovec(), data.Size(), | 257 frame_data.AppendIovecAtMostBytes(data.iovec(), data.Size(), |
258 bytes_consumed); | 258 bytes_consumed); |
259 DCHECK_EQ(frame_data.TotalBufferSize(), bytes_consumed); | 259 DCHECK_EQ(frame_data.TotalBufferSize(), bytes_consumed); |
260 *frame = QuicFrame(new QuicStreamFrame(id, set_fin, offset, frame_data)); | 260 *frame = QuicFrame(new QuicStreamFrame(id, set_fin, offset, frame_data)); |
261 return bytes_consumed; | 261 return bytes_consumed; |
262 } | 262 } |
263 | 263 |
264 size_t QuicPacketCreator::CreateStreamFrameWithNotifier( | |
265 QuicStreamId id, | |
266 const IOVector& data, | |
267 QuicStreamOffset offset, | |
268 bool fin, | |
269 QuicAckNotifier* notifier, | |
270 QuicFrame* frame) { | |
271 size_t bytes_consumed = CreateStreamFrame(id, data, offset, fin, frame); | |
272 | |
273 // The frame keeps track of the QuicAckNotifier until it is serialized into | |
274 // a packet. At that point the notifier is informed of the sequence number | |
275 // of the packet that this frame was eventually sent in. | |
276 frame->stream_frame->notifier = notifier; | |
277 | |
278 return bytes_consumed; | |
279 } | |
280 | |
281 SerializedPacket QuicPacketCreator::ReserializeAllFrames( | 264 SerializedPacket QuicPacketCreator::ReserializeAllFrames( |
282 const QuicFrames& frames, | 265 const QuicFrames& frames, |
283 QuicSequenceNumberLength original_length) { | 266 QuicSequenceNumberLength original_length) { |
284 DCHECK(fec_group_.get() == nullptr); | 267 DCHECK(fec_group_.get() == nullptr); |
285 const QuicSequenceNumberLength saved_length = sequence_number_length_; | 268 const QuicSequenceNumberLength saved_length = sequence_number_length_; |
286 const QuicSequenceNumberLength saved_next_length = | 269 const QuicSequenceNumberLength saved_next_length = |
287 next_sequence_number_length_; | 270 next_sequence_number_length_; |
288 const bool saved_should_fec_protect = should_fec_protect_; | 271 const bool saved_should_fec_protect = should_fec_protect_; |
289 | 272 |
290 // Temporarily set the sequence number length and stop FEC protection. | 273 // Temporarily set the sequence number length and stop FEC protection. |
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
527 if (!is_handshake) { | 510 if (!is_handshake) { |
528 return; | 511 return; |
529 } | 512 } |
530 | 513 |
531 QuicPaddingFrame padding; | 514 QuicPaddingFrame padding; |
532 bool success = AddFrame(QuicFrame(&padding), false); | 515 bool success = AddFrame(QuicFrame(&padding), false); |
533 DCHECK(success); | 516 DCHECK(success); |
534 } | 517 } |
535 | 518 |
536 } // namespace net | 519 } // namespace net |
OLD | NEW |