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

Side by Side Diff: net/quic/quic_packet_generator.cc

Issue 242593002: Land Recent QUIC Changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Build fix. Use uint32 instead of int Created 6 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « net/quic/quic_packet_creator_test.cc ('k') | net/quic/quic_protocol.h » ('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 #include "net/quic/quic_packet_generator.h" 5 #include "net/quic/quic_packet_generator.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/quic_fec_group.h" 9 #include "net/quic/quic_fec_group.h"
10 #include "net/quic/quic_utils.h" 10 #include "net/quic/quic_utils.h"
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 // We're done writing the data. Exit the loop. 139 // We're done writing the data. Exit the loop.
140 // We don't make this a precondition because we could have 0 bytes of data 140 // We don't make this a precondition because we could have 0 bytes of data
141 // if we're simply writing a fin. 141 // if we're simply writing a fin.
142 break; 142 break;
143 } 143 }
144 } 144 }
145 145
146 // Ensure the FEC group is closed at the end of this method if not in batch 146 // Ensure the FEC group is closed at the end of this method if not in batch
147 // mode. 147 // mode.
148 if (!InBatchMode() && packet_creator_->ShouldSendFec(true)) { 148 if (!InBatchMode() && packet_creator_->ShouldSendFec(true)) {
149 // TODO(jri): SerializeFec can return a NULL packet, and this should
150 // cause an early return, with a call to delegate_->OnPacketGenerationError.
149 SerializedPacket serialized_fec = packet_creator_->SerializeFec(); 151 SerializedPacket serialized_fec = packet_creator_->SerializeFec();
150 DCHECK(serialized_fec.packet); 152 DCHECK(serialized_fec.packet);
151 delegate_->OnSerializedPacket(serialized_fec); 153 delegate_->OnSerializedPacket(serialized_fec);
152 } 154 }
153 155
154 DCHECK(InBatchMode() || !packet_creator_->HasPendingFrames()); 156 DCHECK(InBatchMode() || !packet_creator_->HasPendingFrames());
155 return QuicConsumedData(total_bytes_consumed, fin_consumed); 157 return QuicConsumedData(total_bytes_consumed, fin_consumed);
156 } 158 }
157 159
158 bool QuicPacketGenerator::CanSendWithNextPendingFrameAddition() const { 160 bool QuicPacketGenerator::CanSendWithNextPendingFrameAddition() const {
(...skipping 19 matching lines...) Expand all
178 } 180 }
179 181
180 if (!InBatchMode() || flush) { 182 if (!InBatchMode() || flush) {
181 if (packet_creator_->HasPendingFrames()) { 183 if (packet_creator_->HasPendingFrames()) {
182 SerializeAndSendPacket(); 184 SerializeAndSendPacket();
183 } 185 }
184 186
185 // Ensure the FEC group is closed at the end of this method unless other 187 // Ensure the FEC group is closed at the end of this method unless other
186 // writes are pending. 188 // writes are pending.
187 if (packet_creator_->ShouldSendFec(true)) { 189 if (packet_creator_->ShouldSendFec(true)) {
190 // TODO(jri): SerializeFec can return a NULL packet, and this should
191 // cause an early return, with a call to
192 // delegate_->OnPacketGenerationError.
188 SerializedPacket serialized_fec = packet_creator_->SerializeFec(); 193 SerializedPacket serialized_fec = packet_creator_->SerializeFec();
189 DCHECK(serialized_fec.packet); 194 DCHECK(serialized_fec.packet);
190 delegate_->OnSerializedPacket(serialized_fec); 195 delegate_->OnSerializedPacket(serialized_fec);
191 } 196 }
192 } 197 }
193 } 198 }
194 199
195 bool QuicPacketGenerator::InBatchMode() { 200 bool QuicPacketGenerator::InBatchMode() {
196 return batch_mode_; 201 return batch_mode_;
197 } 202 }
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 } 269 }
265 return success; 270 return success;
266 } 271 }
267 272
268 void QuicPacketGenerator::SerializeAndSendPacket() { 273 void QuicPacketGenerator::SerializeAndSendPacket() {
269 SerializedPacket serialized_packet = packet_creator_->SerializePacket(); 274 SerializedPacket serialized_packet = packet_creator_->SerializePacket();
270 DCHECK(serialized_packet.packet); 275 DCHECK(serialized_packet.packet);
271 delegate_->OnSerializedPacket(serialized_packet); 276 delegate_->OnSerializedPacket(serialized_packet);
272 277
273 if (packet_creator_->ShouldSendFec(false)) { 278 if (packet_creator_->ShouldSendFec(false)) {
279 // TODO(jri): SerializeFec can return a NULL packet, and this should
280 // cause an early return, with a call to delegate_->OnPacketGenerationError.
274 SerializedPacket serialized_fec = packet_creator_->SerializeFec(); 281 SerializedPacket serialized_fec = packet_creator_->SerializeFec();
275 DCHECK(serialized_fec.packet); 282 DCHECK(serialized_fec.packet);
276 delegate_->OnSerializedPacket(serialized_fec); 283 delegate_->OnSerializedPacket(serialized_fec);
277 } 284 }
278 } 285 }
279 286
280 } // namespace net 287 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_packet_creator_test.cc ('k') | net/quic/quic_protocol.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698