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

Side by Side Diff: webrtc/base/httpbase.cc

Issue 2718663005: Replace NULL with nullptr or null in webrtc/base/. (Closed)
Patch Set: Fixing Windows and formatting issues. Created 3 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 | « webrtc/base/httpbase.h ('k') | webrtc/base/httpbase_unittest.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 /* 1 /*
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 } 169 }
170 return ProcessHeader(line, nlen, value, vlen, error); 170 return ProcessHeader(line, nlen, value, vlen, error);
171 } else { 171 } else {
172 state_ = chunked_ ? ST_CHUNKSIZE : ST_DATA; 172 state_ = chunked_ ? ST_CHUNKSIZE : ST_DATA;
173 return ProcessHeaderComplete(chunked_, data_size_, error); 173 return ProcessHeaderComplete(chunked_, data_size_, error);
174 } 174 }
175 break; 175 break;
176 176
177 case ST_CHUNKSIZE: 177 case ST_CHUNKSIZE:
178 if (len > 0) { 178 if (len > 0) {
179 char* ptr = NULL; 179 char* ptr = nullptr;
180 data_size_ = strtoul(line, &ptr, 16); 180 data_size_ = strtoul(line, &ptr, 16);
181 if (ptr != line + len) { 181 if (ptr != line + len) {
182 *error = HE_PROTOCOL; 182 *error = HE_PROTOCOL;
183 return PR_COMPLETE; 183 return PR_COMPLETE;
184 } 184 }
185 state_ = (data_size_ == 0) ? ST_TRAILERS : ST_DATA; 185 state_ = (data_size_ == 0) ? ST_TRAILERS : ST_DATA;
186 } else { 186 } else {
187 *error = HE_PROTOCOL; 187 *error = HE_PROTOCOL;
188 return PR_COMPLETE; 188 return PR_COMPLETE;
189 } 189 }
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 StreamResult DoReserve(size_t size, int* error) override { 238 StreamResult DoReserve(size_t size, int* error) override {
239 return (buffer_length_ >= size) ? SR_SUCCESS : SR_BLOCK; 239 return (buffer_length_ >= size) ? SR_SUCCESS : SR_BLOCK;
240 } 240 }
241 }; 241 };
242 242
243 class HttpBase::DocumentStream : public StreamInterface { 243 class HttpBase::DocumentStream : public StreamInterface {
244 public: 244 public:
245 DocumentStream(HttpBase* base) : base_(base), error_(HE_DEFAULT) { } 245 DocumentStream(HttpBase* base) : base_(base), error_(HE_DEFAULT) { }
246 246
247 StreamState GetState() const override { 247 StreamState GetState() const override {
248 if (NULL == base_) 248 if (nullptr == base_)
249 return SS_CLOSED; 249 return SS_CLOSED;
250 if (HM_RECV == base_->mode_) 250 if (HM_RECV == base_->mode_)
251 return SS_OPEN; 251 return SS_OPEN;
252 return SS_OPENING; 252 return SS_OPENING;
253 } 253 }
254 254
255 StreamResult Read(void* buffer, 255 StreamResult Read(void* buffer,
256 size_t buffer_len, 256 size_t buffer_len,
257 size_t* read, 257 size_t* read,
258 int* error) override { 258 int* error) override {
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 return false; 335 return false;
336 size_t data_size = base_->GetDataRemaining(); 336 size_t data_size = base_->GetDataRemaining();
337 if (SIZE_UNKNOWN == data_size) 337 if (SIZE_UNKNOWN == data_size)
338 return false; 338 return false;
339 if (size) 339 if (size)
340 *size = data_size; 340 *size = data_size;
341 return true; 341 return true;
342 } 342 }
343 343
344 HttpBase* Disconnect(HttpError error) { 344 HttpBase* Disconnect(HttpError error) {
345 RTC_DCHECK(NULL != base_); 345 RTC_DCHECK(nullptr != base_);
346 RTC_DCHECK(NULL != base_->doc_stream_); 346 RTC_DCHECK(nullptr != base_->doc_stream_);
347 HttpBase* base = base_; 347 HttpBase* base = base_;
348 base_->doc_stream_ = NULL; 348 base_->doc_stream_ = nullptr;
349 base_ = NULL; 349 base_ = nullptr;
350 error_ = error; 350 error_ = error;
351 return base; 351 return base;
352 } 352 }
353 353
354 private: 354 private:
355 HttpBase* base_; 355 HttpBase* base_;
356 HttpError error_; 356 HttpError error_;
357 }; 357 };
358 358
359 ////////////////////////////////////////////////////////////////////// 359 //////////////////////////////////////////////////////////////////////
360 // HttpBase 360 // HttpBase
361 ////////////////////////////////////////////////////////////////////// 361 //////////////////////////////////////////////////////////////////////
362 362
363 HttpBase::HttpBase() : mode_(HM_NONE), data_(NULL), notify_(NULL), 363 HttpBase::HttpBase()
364 http_stream_(NULL), doc_stream_(NULL) { 364 : mode_(HM_NONE),
365 } 365 data_(nullptr),
366 notify_(nullptr),
367 http_stream_(nullptr),
368 doc_stream_(nullptr) {}
366 369
367 HttpBase::~HttpBase() { 370 HttpBase::~HttpBase() {
368 RTC_DCHECK(HM_NONE == mode_); 371 RTC_DCHECK(HM_NONE == mode_);
369 } 372 }
370 373
371 bool 374 bool
372 HttpBase::isConnected() const { 375 HttpBase::isConnected() const {
373 return (http_stream_ != NULL) && (http_stream_->GetState() == SS_OPEN); 376 return (http_stream_ != nullptr) && (http_stream_->GetState() == SS_OPEN);
374 } 377 }
375 378
376 bool 379 bool
377 HttpBase::attach(StreamInterface* stream) { 380 HttpBase::attach(StreamInterface* stream) {
378 if ((mode_ != HM_NONE) || (http_stream_ != NULL) || (stream == NULL)) { 381 if ((mode_ != HM_NONE) || (http_stream_ != nullptr) || (stream == nullptr)) {
379 RTC_NOTREACHED(); 382 RTC_NOTREACHED();
380 return false; 383 return false;
381 } 384 }
382 http_stream_ = stream; 385 http_stream_ = stream;
383 http_stream_->SignalEvent.connect(this, &HttpBase::OnHttpStreamEvent); 386 http_stream_->SignalEvent.connect(this, &HttpBase::OnHttpStreamEvent);
384 mode_ = (http_stream_->GetState() == SS_OPENING) ? HM_CONNECT : HM_NONE; 387 mode_ = (http_stream_->GetState() == SS_OPENING) ? HM_CONNECT : HM_NONE;
385 return true; 388 return true;
386 } 389 }
387 390
388 StreamInterface* 391 StreamInterface*
389 HttpBase::detach() { 392 HttpBase::detach() {
390 RTC_DCHECK(HM_NONE == mode_); 393 RTC_DCHECK(HM_NONE == mode_);
391 if (mode_ != HM_NONE) { 394 if (mode_ != HM_NONE) {
392 return NULL; 395 return nullptr;
393 } 396 }
394 StreamInterface* stream = http_stream_; 397 StreamInterface* stream = http_stream_;
395 http_stream_ = NULL; 398 http_stream_ = nullptr;
396 if (stream) { 399 if (stream) {
397 stream->SignalEvent.disconnect(this); 400 stream->SignalEvent.disconnect(this);
398 } 401 }
399 return stream; 402 return stream;
400 } 403 }
401 404
402 void 405 void
403 HttpBase::send(HttpData* data) { 406 HttpBase::send(HttpData* data) {
404 RTC_DCHECK(HM_NONE == mode_); 407 RTC_DCHECK(HM_NONE == mode_);
405 if (mode_ != HM_NONE) { 408 if (mode_ != HM_NONE) {
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 if (doc_stream_) { 458 if (doc_stream_) {
456 doc_stream_->SignalEvent(doc_stream_, SE_OPEN | SE_READ, 0); 459 doc_stream_->SignalEvent(doc_stream_, SE_OPEN | SE_READ, 0);
457 } else { 460 } else {
458 read_and_process_data(); 461 read_and_process_data();
459 } 462 }
460 } 463 }
461 464
462 void 465 void
463 HttpBase::abort(HttpError err) { 466 HttpBase::abort(HttpError err) {
464 if (mode_ != HM_NONE) { 467 if (mode_ != HM_NONE) {
465 if (http_stream_ != NULL) { 468 if (http_stream_ != nullptr) {
466 http_stream_->Close(); 469 http_stream_->Close();
467 } 470 }
468 do_complete(err); 471 do_complete(err);
469 } 472 }
470 } 473 }
471 474
472 StreamInterface* HttpBase::GetDocumentStream() { 475 StreamInterface* HttpBase::GetDocumentStream() {
473 if (doc_stream_) 476 if (doc_stream_)
474 return NULL; 477 return nullptr;
475 doc_stream_ = new DocumentStream(this); 478 doc_stream_ = new DocumentStream(this);
476 return doc_stream_; 479 return doc_stream_;
477 } 480 }
478 481
479 HttpError HttpBase::HandleStreamClose(int error) { 482 HttpError HttpBase::HandleStreamClose(int error) {
480 if (http_stream_ != NULL) { 483 if (http_stream_ != nullptr) {
481 http_stream_->Close(); 484 http_stream_->Close();
482 } 485 }
483 if (error == 0) { 486 if (error == 0) {
484 if ((mode_ == HM_RECV) && is_valid_end_of_input()) { 487 if ((mode_ == HM_RECV) && is_valid_end_of_input()) {
485 return HE_NONE; 488 return HE_NONE;
486 } else { 489 } else {
487 return HE_DISCONNECTED; 490 return HE_DISCONNECTED;
488 } 491 }
489 } else if (error == SOCKET_EACCES) { 492 } else if (error == SOCKET_EACCES) {
490 return HE_AUTH; 493 return HE_AUTH;
491 } else if (error == SEC_E_CERT_EXPIRED) { 494 } else if (error == SEC_E_CERT_EXPIRED) {
492 return HE_CERTIFICATE_EXPIRED; 495 return HE_CERTIFICATE_EXPIRED;
493 } 496 }
494 LOG_F(LS_ERROR) << "(" << error << ")"; 497 LOG_F(LS_ERROR) << "(" << error << ")";
495 return (HM_CONNECT == mode_) ? HE_CONNECT_FAILED : HE_SOCKET_ERROR; 498 return (HM_CONNECT == mode_) ? HE_CONNECT_FAILED : HE_SOCKET_ERROR;
496 } 499 }
497 500
498 bool HttpBase::DoReceiveLoop(HttpError* error) { 501 bool HttpBase::DoReceiveLoop(HttpError* error) {
499 RTC_DCHECK(HM_RECV == mode_); 502 RTC_DCHECK(HM_RECV == mode_);
500 RTC_DCHECK(NULL != error); 503 RTC_DCHECK(nullptr != error);
501 504
502 // Do to the latency between receiving read notifications from 505 // Do to the latency between receiving read notifications from
503 // pseudotcpchannel, we rely on repeated calls to read in order to acheive 506 // pseudotcpchannel, we rely on repeated calls to read in order to acheive
504 // ideal throughput. The number of reads is limited to prevent starving 507 // ideal throughput. The number of reads is limited to prevent starving
505 // the caller. 508 // the caller.
506 509
507 size_t loop_count = 0; 510 size_t loop_count = 0;
508 const size_t kMaxReadCount = 20; 511 const size_t kMaxReadCount = 20;
509 bool process_requires_more_data = false; 512 bool process_requires_more_data = false;
510 do { 513 do {
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
730 } 733 }
731 734
732 void 735 void
733 HttpBase::do_complete(HttpError err) { 736 HttpBase::do_complete(HttpError err) {
734 RTC_DCHECK(mode_ != HM_NONE); 737 RTC_DCHECK(mode_ != HM_NONE);
735 HttpMode mode = mode_; 738 HttpMode mode = mode_;
736 mode_ = HM_NONE; 739 mode_ = HM_NONE;
737 if (data_ && data_->document) { 740 if (data_ && data_->document) {
738 data_->document->SignalEvent.disconnect(this); 741 data_->document->SignalEvent.disconnect(this);
739 } 742 }
740 data_ = NULL; 743 data_ = nullptr;
741 if ((HM_RECV == mode) && doc_stream_) { 744 if ((HM_RECV == mode) && doc_stream_) {
742 RTC_DCHECK(HE_NONE != 745 RTC_DCHECK(HE_NONE !=
743 err); // We should have Disconnected doc_stream_ already. 746 err); // We should have Disconnected doc_stream_ already.
744 DocumentStream* ds = doc_stream_; 747 DocumentStream* ds = doc_stream_;
745 ds->Disconnect(err); 748 ds->Disconnect(err);
746 ds->SignalEvent(ds, SE_CLOSE, err); 749 ds->SignalEvent(ds, SE_CLOSE, err);
747 } 750 }
748 if (notify_) { 751 if (notify_) {
749 notify_->onHttpComplete(mode, err); 752 notify_->onHttpComplete(mode, err);
750 } 753 }
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
827 return PR_CONTINUE; 830 return PR_CONTINUE;
828 } 831 }
829 832
830 HttpParser::ProcessResult 833 HttpParser::ProcessResult
831 HttpBase::ProcessHeaderComplete(bool chunked, size_t& data_size, 834 HttpBase::ProcessHeaderComplete(bool chunked, size_t& data_size,
832 HttpError* error) { 835 HttpError* error) {
833 StreamInterface* old_docstream = doc_stream_; 836 StreamInterface* old_docstream = doc_stream_;
834 if (notify_) { 837 if (notify_) {
835 *error = notify_->onHttpHeaderComplete(chunked, data_size); 838 *error = notify_->onHttpHeaderComplete(chunked, data_size);
836 // The request must not be aborted as a result of this callback. 839 // The request must not be aborted as a result of this callback.
837 RTC_DCHECK(NULL != data_); 840 RTC_DCHECK(nullptr != data_);
838 } 841 }
839 if ((HE_NONE == *error) && data_->document) { 842 if ((HE_NONE == *error) && data_->document) {
840 data_->document->SignalEvent.connect(this, &HttpBase::OnDocumentEvent); 843 data_->document->SignalEvent.connect(this, &HttpBase::OnDocumentEvent);
841 } 844 }
842 if (HE_NONE != *error) { 845 if (HE_NONE != *error) {
843 return PR_COMPLETE; 846 return PR_COMPLETE;
844 } 847 }
845 if (old_docstream != doc_stream_) { 848 if (old_docstream != doc_stream_) {
846 // Break out of Process loop, since our I/O model just changed. 849 // Break out of Process loop, since our I/O model just changed.
847 return PR_BLOCK; 850 return PR_BLOCK;
(...skipping 26 matching lines...) Expand all
874 } 877 }
875 } 878 }
876 879
877 void 880 void
878 HttpBase::OnComplete(HttpError err) { 881 HttpBase::OnComplete(HttpError err) {
879 LOG_F(LS_VERBOSE); 882 LOG_F(LS_VERBOSE);
880 do_complete(err); 883 do_complete(err);
881 } 884 }
882 885
883 } // namespace rtc 886 } // namespace rtc
OLDNEW
« no previous file with comments | « webrtc/base/httpbase.h ('k') | webrtc/base/httpbase_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698