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

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

Issue 612323013: QUIC - (no behavior change) s/NULL/nullptr/g in .../quic/... (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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_utils_chromium_test.cc ('k') | net/quic/reliable_quic_stream_test.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 #include "net/quic/reliable_quic_stream.h" 5 #include "net/quic/reliable_quic_stream.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "net/quic/iovector.h" 8 #include "net/quic/iovector.h"
9 #include "net/quic/quic_flow_controller.h" 9 #include "net/quic/quic_flow_controller.h"
10 #include "net/quic/quic_session.h" 10 #include "net/quic/quic_session.h"
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 LOG(DFATAL) << "data.empty() && !fin"; 267 LOG(DFATAL) << "data.empty() && !fin";
268 return; 268 return;
269 } 269 }
270 270
271 if (fin_buffered_) { 271 if (fin_buffered_) {
272 LOG(DFATAL) << "Fin already buffered"; 272 LOG(DFATAL) << "Fin already buffered";
273 return; 273 return;
274 } 274 }
275 275
276 scoped_refptr<ProxyAckNotifierDelegate> proxy_delegate; 276 scoped_refptr<ProxyAckNotifierDelegate> proxy_delegate;
277 if (ack_notifier_delegate != NULL) { 277 if (ack_notifier_delegate != nullptr) {
278 proxy_delegate = new ProxyAckNotifierDelegate(ack_notifier_delegate); 278 proxy_delegate = new ProxyAckNotifierDelegate(ack_notifier_delegate);
279 } 279 }
280 280
281 QuicConsumedData consumed_data(0, false); 281 QuicConsumedData consumed_data(0, false);
282 fin_buffered_ = fin; 282 fin_buffered_ = fin;
283 283
284 if (queued_data_.empty()) { 284 if (queued_data_.empty()) {
285 struct iovec iov(MakeIovec(data)); 285 struct iovec iov(MakeIovec(data));
286 consumed_data = WritevData(&iov, 1, fin, proxy_delegate.get()); 286 consumed_data = WritevData(&iov, 1, fin, proxy_delegate.get());
287 DCHECK_LE(consumed_data.bytes_consumed, data.length()); 287 DCHECK_LE(consumed_data.bytes_consumed, data.length());
288 } 288 }
289 289
290 bool write_completed; 290 bool write_completed;
291 // If there's unconsumed data or an unconsumed fin, queue it. 291 // If there's unconsumed data or an unconsumed fin, queue it.
292 if (consumed_data.bytes_consumed < data.length() || 292 if (consumed_data.bytes_consumed < data.length() ||
293 (fin && !consumed_data.fin_consumed)) { 293 (fin && !consumed_data.fin_consumed)) {
294 StringPiece remainder(data.substr(consumed_data.bytes_consumed)); 294 StringPiece remainder(data.substr(consumed_data.bytes_consumed));
295 queued_data_.push_back(PendingData(remainder.as_string(), proxy_delegate)); 295 queued_data_.push_back(PendingData(remainder.as_string(), proxy_delegate));
296 write_completed = false; 296 write_completed = false;
297 } else { 297 } else {
298 write_completed = true; 298 write_completed = true;
299 } 299 }
300 300
301 if ((proxy_delegate.get() != NULL) && 301 if ((proxy_delegate.get() != nullptr) &&
302 (consumed_data.bytes_consumed > 0 || consumed_data.fin_consumed)) { 302 (consumed_data.bytes_consumed > 0 || consumed_data.fin_consumed)) {
303 proxy_delegate->WroteData(write_completed); 303 proxy_delegate->WroteData(write_completed);
304 } 304 }
305 } 305 }
306 306
307 void ReliableQuicStream::OnCanWrite() { 307 void ReliableQuicStream::OnCanWrite() {
308 bool fin = false; 308 bool fin = false;
309 while (!queued_data_.empty()) { 309 while (!queued_data_.empty()) {
310 PendingData* pending_data = &queued_data_.front(); 310 PendingData* pending_data = &queued_data_.front();
311 ProxyAckNotifierDelegate* delegate = pending_data->delegate.get(); 311 ProxyAckNotifierDelegate* delegate = pending_data->delegate.get();
312 if (queued_data_.size() == 1 && fin_buffered_) { 312 if (queued_data_.size() == 1 && fin_buffered_) {
313 fin = true; 313 fin = true;
314 } 314 }
315 struct iovec iov(MakeIovec(pending_data->data)); 315 struct iovec iov(MakeIovec(pending_data->data));
316 QuicConsumedData consumed_data = WritevData(&iov, 1, fin, delegate); 316 QuicConsumedData consumed_data = WritevData(&iov, 1, fin, delegate);
317 if (consumed_data.bytes_consumed == pending_data->data.size() && 317 if (consumed_data.bytes_consumed == pending_data->data.size() &&
318 fin == consumed_data.fin_consumed) { 318 fin == consumed_data.fin_consumed) {
319 queued_data_.pop_front(); 319 queued_data_.pop_front();
320 if (delegate != NULL) { 320 if (delegate != nullptr) {
321 delegate->WroteData(true); 321 delegate->WroteData(true);
322 } 322 }
323 } else { 323 } else {
324 if (consumed_data.bytes_consumed > 0) { 324 if (consumed_data.bytes_consumed > 0) {
325 pending_data->data.erase(0, consumed_data.bytes_consumed); 325 pending_data->data.erase(0, consumed_data.bytes_consumed);
326 if (delegate != NULL) { 326 if (delegate != nullptr) {
327 delegate->WroteData(false); 327 delegate->WroteData(false);
328 } 328 }
329 } 329 }
330 break; 330 break;
331 } 331 }
332 } 332 }
333 } 333 }
334 334
335 void ReliableQuicStream::MaybeSendBlocked() { 335 void ReliableQuicStream::MaybeSendBlocked() {
336 flow_controller_.MaybeSendBlocked(); 336 flow_controller_.MaybeSendBlocked();
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 535
536 bool ReliableQuicStream::IsFlowControlBlocked() { 536 bool ReliableQuicStream::IsFlowControlBlocked() {
537 if (flow_controller_.IsBlocked()) { 537 if (flow_controller_.IsBlocked()) {
538 return true; 538 return true;
539 } 539 }
540 return stream_contributes_to_connection_flow_control_ && 540 return stream_contributes_to_connection_flow_control_ &&
541 connection_flow_controller_->IsBlocked(); 541 connection_flow_controller_->IsBlocked();
542 } 542 }
543 543
544 } // namespace net 544 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_utils_chromium_test.cc ('k') | net/quic/reliable_quic_stream_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698