| 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/core/quic_packet_creator.h" | 5 #include "net/quic/core/quic_packet_creator.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 346 DCHECK(packet_.retransmittable_frames.empty()); | 346 DCHECK(packet_.retransmittable_frames.empty()); |
| 347 packet_.listeners.clear(); | 347 packet_.listeners.clear(); |
| 348 } | 348 } |
| 349 | 349 |
| 350 void QuicPacketCreator::CreateAndSerializeStreamFrame( | 350 void QuicPacketCreator::CreateAndSerializeStreamFrame( |
| 351 QuicStreamId id, | 351 QuicStreamId id, |
| 352 const QuicIOVector& iov, | 352 const QuicIOVector& iov, |
| 353 QuicStreamOffset iov_offset, | 353 QuicStreamOffset iov_offset, |
| 354 QuicStreamOffset stream_offset, | 354 QuicStreamOffset stream_offset, |
| 355 bool fin, | 355 bool fin, |
| 356 scoped_refptr<QuicAckListenerInterface> listener, | 356 QuicReferenceCountedPointer<QuicAckListenerInterface> listener, |
| 357 size_t* num_bytes_consumed) { | 357 size_t* num_bytes_consumed) { |
| 358 DCHECK(queued_frames_.empty()); | 358 DCHECK(queued_frames_.empty()); |
| 359 // Write out the packet header | 359 // Write out the packet header |
| 360 QuicPacketHeader header; | 360 QuicPacketHeader header; |
| 361 FillPacketHeader(&header); | 361 FillPacketHeader(&header); |
| 362 ALIGNAS(64) char encrypted_buffer[kMaxPacketSize]; | 362 ALIGNAS(64) char encrypted_buffer[kMaxPacketSize]; |
| 363 QuicDataWriter writer(arraysize(encrypted_buffer), encrypted_buffer); | 363 QuicDataWriter writer(arraysize(encrypted_buffer), encrypted_buffer); |
| 364 if (!framer_->AppendPacketHeader(header, &writer)) { | 364 if (!framer_->AppendPacketHeader(header, &writer)) { |
| 365 QUIC_BUG << "AppendPacketHeader failed"; | 365 QUIC_BUG << "AppendPacketHeader failed"; |
| 366 return; | 366 return; |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 458 | 458 |
| 459 bool QuicPacketCreator::AddPaddedSavedFrame(const QuicFrame& frame) { | 459 bool QuicPacketCreator::AddPaddedSavedFrame(const QuicFrame& frame) { |
| 460 if (AddFrame(frame, /*save_retransmittable_frames=*/true)) { | 460 if (AddFrame(frame, /*save_retransmittable_frames=*/true)) { |
| 461 packet_.num_padding_bytes = -1; | 461 packet_.num_padding_bytes = -1; |
| 462 return true; | 462 return true; |
| 463 } | 463 } |
| 464 return false; | 464 return false; |
| 465 } | 465 } |
| 466 | 466 |
| 467 void QuicPacketCreator::AddAckListener( | 467 void QuicPacketCreator::AddAckListener( |
| 468 scoped_refptr<QuicAckListenerInterface> listener, | 468 QuicReferenceCountedPointer<QuicAckListenerInterface> listener, |
| 469 QuicPacketLength length) { | 469 QuicPacketLength length) { |
| 470 DCHECK(!queued_frames_.empty()); | 470 DCHECK(!queued_frames_.empty()); |
| 471 packet_.listeners.emplace_back(std::move(listener), length); | 471 packet_.listeners.emplace_back(std::move(listener), length); |
| 472 } | 472 } |
| 473 | 473 |
| 474 void QuicPacketCreator::SerializePacket(char* encrypted_buffer, | 474 void QuicPacketCreator::SerializePacket(char* encrypted_buffer, |
| 475 size_t encrypted_buffer_len) { | 475 size_t encrypted_buffer_len) { |
| 476 DCHECK_LT(0u, encrypted_buffer_len); | 476 DCHECK_LT(0u, encrypted_buffer_len); |
| 477 QUIC_BUG_IF(queued_frames_.empty()) << "Attempt to serialize empty packet"; | 477 QUIC_BUG_IF(queued_frames_.empty()) << "Attempt to serialize empty packet"; |
| 478 QuicPacketHeader header; | 478 QuicPacketHeader header; |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 656 // Switching path needs to update packet number length. | 656 // Switching path needs to update packet number length. |
| 657 UpdatePacketNumberLength(least_packet_awaited_by_peer, max_packets_in_flight); | 657 UpdatePacketNumberLength(least_packet_awaited_by_peer, max_packets_in_flight); |
| 658 } | 658 } |
| 659 | 659 |
| 660 bool QuicPacketCreator::IncludeNonceInPublicHeader() { | 660 bool QuicPacketCreator::IncludeNonceInPublicHeader() { |
| 661 return have_diversification_nonce_ && | 661 return have_diversification_nonce_ && |
| 662 packet_.encryption_level == ENCRYPTION_INITIAL; | 662 packet_.encryption_level == ENCRYPTION_INITIAL; |
| 663 } | 663 } |
| 664 | 664 |
| 665 } // namespace net | 665 } // namespace net |
| OLD | NEW |