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

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

Issue 266243004: Clang format slam. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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
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 11 matching lines...) Expand all
22 debug_delegate_(debug_delegate), 22 debug_delegate_(debug_delegate),
23 packet_creator_(creator), 23 packet_creator_(creator),
24 batch_mode_(false), 24 batch_mode_(false),
25 should_send_ack_(false), 25 should_send_ack_(false),
26 should_send_feedback_(false), 26 should_send_feedback_(false),
27 should_send_stop_waiting_(false) { 27 should_send_stop_waiting_(false) {
28 } 28 }
29 29
30 QuicPacketGenerator::~QuicPacketGenerator() { 30 QuicPacketGenerator::~QuicPacketGenerator() {
31 for (QuicFrames::iterator it = queued_control_frames_.begin(); 31 for (QuicFrames::iterator it = queued_control_frames_.begin();
32 it != queued_control_frames_.end(); ++it) { 32 it != queued_control_frames_.end();
33 ++it) {
33 switch (it->type) { 34 switch (it->type) {
34 case PADDING_FRAME: 35 case PADDING_FRAME:
35 delete it->padding_frame; 36 delete it->padding_frame;
36 break; 37 break;
37 case STREAM_FRAME: 38 case STREAM_FRAME:
38 delete it->stream_frame; 39 delete it->stream_frame;
39 break; 40 break;
40 case ACK_FRAME: 41 case ACK_FRAME:
41 delete it->ack_frame; 42 delete it->ack_frame;
42 break; 43 break;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 99
99 size_t total_bytes_consumed = 0; 100 size_t total_bytes_consumed = 0;
100 bool fin_consumed = false; 101 bool fin_consumed = false;
101 102
102 if (!packet_creator_->HasRoomForStreamFrame(id, offset)) { 103 if (!packet_creator_->HasRoomForStreamFrame(id, offset)) {
103 SerializeAndSendPacket(); 104 SerializeAndSendPacket();
104 } 105 }
105 106
106 IOVector data = data_to_write; 107 IOVector data = data_to_write;
107 size_t data_size = data.TotalBufferSize(); 108 size_t data_size = data.TotalBufferSize();
108 while (delegate_->ShouldGeneratePacket(NOT_RETRANSMISSION, 109 while (delegate_->ShouldGeneratePacket(
109 HAS_RETRANSMITTABLE_DATA, handshake)) { 110 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA, handshake)) {
110 QuicFrame frame; 111 QuicFrame frame;
111 size_t bytes_consumed; 112 size_t bytes_consumed;
112 if (notifier != NULL) { 113 if (notifier != NULL) {
113 // We want to track which packet this stream frame ends up in. 114 // We want to track which packet this stream frame ends up in.
114 bytes_consumed = packet_creator_->CreateStreamFrameWithNotifier( 115 bytes_consumed = packet_creator_->CreateStreamFrameWithNotifier(
115 id, data, offset + total_bytes_consumed, fin, notifier, &frame); 116 id, data, offset + total_bytes_consumed, fin, notifier, &frame);
116 } else { 117 } else {
117 bytes_consumed = packet_creator_->CreateStreamFrame( 118 bytes_consumed = packet_creator_->CreateStreamFrame(
118 id, data, offset + total_bytes_consumed, fin, &frame); 119 id, data, offset + total_bytes_consumed, fin, &frame);
119 } 120 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 } 155 }
155 156
156 DCHECK(InBatchMode() || !packet_creator_->HasPendingFrames()); 157 DCHECK(InBatchMode() || !packet_creator_->HasPendingFrames());
157 return QuicConsumedData(total_bytes_consumed, fin_consumed); 158 return QuicConsumedData(total_bytes_consumed, fin_consumed);
158 } 159 }
159 160
160 bool QuicPacketGenerator::CanSendWithNextPendingFrameAddition() const { 161 bool QuicPacketGenerator::CanSendWithNextPendingFrameAddition() const {
161 DCHECK(HasPendingFrames()); 162 DCHECK(HasPendingFrames());
162 HasRetransmittableData retransmittable = 163 HasRetransmittableData retransmittable =
163 (should_send_ack_ || should_send_feedback_ || should_send_stop_waiting_) 164 (should_send_ack_ || should_send_feedback_ || should_send_stop_waiting_)
164 ? NO_RETRANSMITTABLE_DATA : HAS_RETRANSMITTABLE_DATA; 165 ? NO_RETRANSMITTABLE_DATA
166 : HAS_RETRANSMITTABLE_DATA;
165 if (retransmittable == HAS_RETRANSMITTABLE_DATA) { 167 if (retransmittable == HAS_RETRANSMITTABLE_DATA) {
166 DCHECK(!queued_control_frames_.empty()); // These are retransmittable. 168 DCHECK(!queued_control_frames_.empty()); // These are retransmittable.
167 } 169 }
168 return delegate_->ShouldGeneratePacket(NOT_RETRANSMISSION, retransmittable, 170 return delegate_->ShouldGeneratePacket(
169 NOT_HANDSHAKE); 171 NOT_RETRANSMISSION, retransmittable, NOT_HANDSHAKE);
170 } 172 }
171 173
172 void QuicPacketGenerator::SendQueuedFrames(bool flush) { 174 void QuicPacketGenerator::SendQueuedFrames(bool flush) {
173 // Only add pending frames if we are SURE we can then send the whole packet. 175 // Only add pending frames if we are SURE we can then send the whole packet.
174 while (HasPendingFrames() && 176 while (HasPendingFrames() &&
175 (flush || CanSendWithNextPendingFrameAddition())) { 177 (flush || CanSendWithNextPendingFrameAddition())) {
176 if (!AddNextPendingFrame()) { 178 if (!AddNextPendingFrame()) {
177 // Packet was full, so serialize and send it. 179 // Packet was full, so serialize and send it.
178 SerializeAndSendPacket(); 180 SerializeAndSendPacket();
179 } 181 }
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 void QuicPacketGenerator::FlushAllQueuedFrames() { 215 void QuicPacketGenerator::FlushAllQueuedFrames() {
214 SendQueuedFrames(true); 216 SendQueuedFrames(true);
215 } 217 }
216 218
217 bool QuicPacketGenerator::HasQueuedFrames() const { 219 bool QuicPacketGenerator::HasQueuedFrames() const {
218 return packet_creator_->HasPendingFrames() || HasPendingFrames(); 220 return packet_creator_->HasPendingFrames() || HasPendingFrames();
219 } 221 }
220 222
221 bool QuicPacketGenerator::HasPendingFrames() const { 223 bool QuicPacketGenerator::HasPendingFrames() const {
222 return should_send_ack_ || should_send_feedback_ || 224 return should_send_ack_ || should_send_feedback_ ||
223 should_send_stop_waiting_ || !queued_control_frames_.empty(); 225 should_send_stop_waiting_ || !queued_control_frames_.empty();
224 } 226 }
225 227
226 bool QuicPacketGenerator::AddNextPendingFrame() { 228 bool QuicPacketGenerator::AddNextPendingFrame() {
227 if (should_send_ack_) { 229 if (should_send_ack_) {
228 pending_ack_frame_.reset(delegate_->CreateAckFrame()); 230 pending_ack_frame_.reset(delegate_->CreateAckFrame());
229 // If we can't this add the frame now, then we still need to do so later. 231 // If we can't this add the frame now, then we still need to do so later.
230 should_send_ack_ = !AddFrame(QuicFrame(pending_ack_frame_.get())); 232 should_send_ack_ = !AddFrame(QuicFrame(pending_ack_frame_.get()));
231 // Return success if we have cleared out this flag (i.e., added the frame). 233 // Return success if we have cleared out this flag (i.e., added the frame).
232 // If we still need to send, then the frame is full, and we have failed. 234 // If we still need to send, then the frame is full, and we have failed.
233 return !should_send_ack_; 235 return !should_send_ack_;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 if (packet_creator_->ShouldSendFec(false)) { 280 if (packet_creator_->ShouldSendFec(false)) {
279 // TODO(jri): SerializeFec can return a NULL packet, and this should 281 // TODO(jri): SerializeFec can return a NULL packet, and this should
280 // cause an early return, with a call to delegate_->OnPacketGenerationError. 282 // cause an early return, with a call to delegate_->OnPacketGenerationError.
281 SerializedPacket serialized_fec = packet_creator_->SerializeFec(); 283 SerializedPacket serialized_fec = packet_creator_->SerializeFec();
282 DCHECK(serialized_fec.packet); 284 DCHECK(serialized_fec.packet);
283 delegate_->OnSerializedPacket(serialized_fec); 285 delegate_->OnSerializedPacket(serialized_fec);
284 } 286 }
285 } 287 }
286 288
287 } // namespace net 289 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698