Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: net/quic/quic_packet_creator.h

Issue 1037403004: Land Recent QUIC Changes until 03/27/2015 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cleanup Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/quic/quic_http_stream_test.cc ('k') | net/quic/quic_packet_creator.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 // Accumulates frames for the next packet until more frames no longer fit or 5 // Accumulates frames for the next packet until more frames no longer fit or
6 // it's time to create a packet from them. Also provides packet creation of 6 // it's time to create a packet from them. Also provides packet creation of
7 // FEC packets based on previously created packets. 7 // FEC packets based on previously created packets.
8 8
9 #ifndef NET_QUIC_QUIC_PACKET_CREATOR_H_ 9 #ifndef NET_QUIC_QUIC_PACKET_CREATOR_H_
10 #define NET_QUIC_QUIC_PACKET_CREATOR_H_ 10 #define NET_QUIC_QUIC_PACKET_CREATOR_H_
11 11
12 #include <string>
12 #include <utility> 13 #include <utility>
13 #include <vector> 14 #include <vector>
14 15
15 #include "base/memory/scoped_ptr.h" 16 #include "base/memory/scoped_ptr.h"
16 #include "base/strings/string_piece.h" 17 #include "base/strings/string_piece.h"
17 #include "net/quic/quic_fec_group.h" 18 #include "net/quic/quic_fec_group.h"
18 #include "net/quic/quic_framer.h" 19 #include "net/quic/quic_framer.h"
19 #include "net/quic/quic_protocol.h" 20 #include "net/quic/quic_protocol.h"
20 21
21 namespace net { 22 namespace net {
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 } 185 }
185 186
186 void set_connection_id_length(QuicConnectionIdLength length) { 187 void set_connection_id_length(QuicConnectionIdLength length) {
187 connection_id_length_ = length; 188 connection_id_length_ = length;
188 } 189 }
189 190
190 QuicByteCount max_packet_length() const { 191 QuicByteCount max_packet_length() const {
191 return max_packet_length_; 192 return max_packet_length_;
192 } 193 }
193 194
194 void set_max_packet_length(QuicByteCount length) { 195 // Sets the encrypter to use for the encryption level and updates the max
195 // |max_packet_length_| should not be changed mid-packet or mid-FEC group. 196 // plaintext size.
196 DCHECK(fec_group_.get() == nullptr && queued_frames_.empty()); 197 void SetEncrypter(EncryptionLevel level, QuicEncrypter* encrypter);
197 max_packet_length_ = length; 198
198 } 199 // Sets the maximum packet length.
200 void SetMaxPacketLength(QuicByteCount length);
199 201
200 // Returns current max number of packets covered by an FEC group. 202 // Returns current max number of packets covered by an FEC group.
201 size_t max_packets_per_fec_group() const { 203 size_t max_packets_per_fec_group() const {
202 return max_packets_per_fec_group_; 204 return max_packets_per_fec_group_;
203 } 205 }
204 206
205 // Sets creator's max number of packets covered by an FEC group. 207 // Sets creator's max number of packets covered by an FEC group.
206 // Note: While there are no constraints on |max_packets_per_fec_group|, 208 // Note: While there are no constraints on |max_packets_per_fec_group|,
207 // this setter enforces a min value of kLowestMaxPacketsPerFecGroup. 209 // this setter enforces a min value of kLowestMaxPacketsPerFecGroup.
208 // To turn off FEC protection, use StopFecProtectingPackets(). 210 // To turn off FEC protection, use StopFecProtectingPackets().
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 // a packet or FEC group boundary, when the creator's sequence_number_length_ 260 // a packet or FEC group boundary, when the creator's sequence_number_length_
259 // can be changed to this new value. 261 // can be changed to this new value.
260 QuicSequenceNumberLength next_sequence_number_length_; 262 QuicSequenceNumberLength next_sequence_number_length_;
261 // Sequence number length for the current packet and for the current FEC group 263 // Sequence number length for the current packet and for the current FEC group
262 // when FEC is enabled. Mutable so PacketSize() can adjust it when the packet 264 // when FEC is enabled. Mutable so PacketSize() can adjust it when the packet
263 // is empty. 265 // is empty.
264 mutable QuicSequenceNumberLength sequence_number_length_; 266 mutable QuicSequenceNumberLength sequence_number_length_;
265 // packet_size_ is mutable because it's just a cache of the current size. 267 // packet_size_ is mutable because it's just a cache of the current size.
266 // packet_size should never be read directly, use PacketSize() instead. 268 // packet_size should never be read directly, use PacketSize() instead.
267 mutable size_t packet_size_; 269 mutable size_t packet_size_;
270 mutable size_t max_plaintext_size_;
268 QuicFrames queued_frames_; 271 QuicFrames queued_frames_;
269 scoped_ptr<RetransmittableFrames> queued_retransmittable_frames_; 272 scoped_ptr<RetransmittableFrames> queued_retransmittable_frames_;
270 273
271 DISALLOW_COPY_AND_ASSIGN(QuicPacketCreator); 274 DISALLOW_COPY_AND_ASSIGN(QuicPacketCreator);
272 }; 275 };
273 276
274 } // namespace net 277 } // namespace net
275 278
276 #endif // NET_QUIC_QUIC_PACKET_CREATOR_H_ 279 #endif // NET_QUIC_QUIC_PACKET_CREATOR_H_
OLDNEW
« no previous file with comments | « net/quic/quic_http_stream_test.cc ('k') | net/quic/quic_packet_creator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698