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

Side by Side Diff: content/browser/byte_stream.cc

Issue 1874893002: Convert //content/browser from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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
« no previous file with comments | « content/browser/byte_stream.h ('k') | content/browser/byte_stream_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 // 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 "content/browser/byte_stream.h" 5 #include "content/browser/byte_stream.h"
6 6
7 #include <deque> 7 #include <deque>
8 #include <set> 8 #include <set>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 StreamState Read(scoped_refptr<net::IOBuffer>* data, size_t* length) override; 119 StreamState Read(scoped_refptr<net::IOBuffer>* data, size_t* length) override;
120 int GetStatus() const override; 120 int GetStatus() const override;
121 void RegisterCallback(const base::Closure& sink_callback) override; 121 void RegisterCallback(const base::Closure& sink_callback) override;
122 122
123 // PostTask target from |ByteStreamWriterImpl::Write| and 123 // PostTask target from |ByteStreamWriterImpl::Write| and
124 // |ByteStreamWriterImpl::Close|. 124 // |ByteStreamWriterImpl::Close|.
125 // Receive data from our peer. 125 // Receive data from our peer.
126 // static because it may be called after the object it is targeting 126 // static because it may be called after the object it is targeting
127 // has been destroyed. It may not access |*target| 127 // has been destroyed. It may not access |*target|
128 // if |*object_lifetime_flag| is false. 128 // if |*object_lifetime_flag| is false.
129 static void TransferData( 129 static void TransferData(scoped_refptr<LifetimeFlag> object_lifetime_flag,
130 scoped_refptr<LifetimeFlag> object_lifetime_flag, 130 ByteStreamReaderImpl* target,
131 ByteStreamReaderImpl* target, 131 std::unique_ptr<ContentVector> transfer_buffer,
132 scoped_ptr<ContentVector> transfer_buffer, 132 size_t transfer_buffer_bytes,
133 size_t transfer_buffer_bytes, 133 bool source_complete,
134 bool source_complete, 134 int status);
135 int status);
136 135
137 private: 136 private:
138 // Called from TransferData once object existence has been validated. 137 // Called from TransferData once object existence has been validated.
139 void TransferDataInternal( 138 void TransferDataInternal(std::unique_ptr<ContentVector> transfer_buffer,
140 scoped_ptr<ContentVector> transfer_buffer, 139 size_t transfer_buffer_bytes,
141 size_t transfer_buffer_bytes, 140 bool source_complete,
142 bool source_complete, 141 int status);
143 int status);
144 142
145 void MaybeUpdateInput(); 143 void MaybeUpdateInput();
146 144
147 const size_t total_buffer_size_; 145 const size_t total_buffer_size_;
148 146
149 scoped_refptr<base::SequencedTaskRunner> my_task_runner_; 147 scoped_refptr<base::SequencedTaskRunner> my_task_runner_;
150 148
151 // True while this object is alive. 149 // True while this object is alive.
152 scoped_refptr<LifetimeFlag> my_lifetime_flag_; 150 scoped_refptr<LifetimeFlag> my_lifetime_flag_;
153 151
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 if (no_longer_above_limit && was_above_limit && 280 if (no_longer_above_limit && was_above_limit &&
283 !space_available_callback_.is_null()) 281 !space_available_callback_.is_null())
284 space_available_callback_.Run(); 282 space_available_callback_.Run();
285 } 283 }
286 284
287 void ByteStreamWriterImpl::PostToPeer(bool complete, int status) { 285 void ByteStreamWriterImpl::PostToPeer(bool complete, int status) {
288 DCHECK(my_task_runner_->RunsTasksOnCurrentThread()); 286 DCHECK(my_task_runner_->RunsTasksOnCurrentThread());
289 // Valid contexts in which to call. 287 // Valid contexts in which to call.
290 DCHECK(complete || 0 != input_contents_size_); 288 DCHECK(complete || 0 != input_contents_size_);
291 289
292 scoped_ptr<ContentVector> transfer_buffer; 290 std::unique_ptr<ContentVector> transfer_buffer;
293 size_t buffer_size = 0; 291 size_t buffer_size = 0;
294 if (0 != input_contents_size_) { 292 if (0 != input_contents_size_) {
295 transfer_buffer.reset(new ContentVector); 293 transfer_buffer.reset(new ContentVector);
296 transfer_buffer->swap(input_contents_); 294 transfer_buffer->swap(input_contents_);
297 buffer_size = input_contents_size_; 295 buffer_size = input_contents_size_;
298 output_size_used_ += input_contents_size_; 296 output_size_used_ += input_contents_size_;
299 input_contents_size_ = 0; 297 input_contents_size_ = 0;
300 } 298 }
301 peer_task_runner_->PostTask( 299 peer_task_runner_->PostTask(
302 FROM_HERE, base::Bind( 300 FROM_HERE, base::Bind(
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 const base::Closure& sink_callback) { 368 const base::Closure& sink_callback) {
371 DCHECK(my_task_runner_->RunsTasksOnCurrentThread()); 369 DCHECK(my_task_runner_->RunsTasksOnCurrentThread());
372 370
373 data_available_callback_ = sink_callback; 371 data_available_callback_ = sink_callback;
374 } 372 }
375 373
376 // static 374 // static
377 void ByteStreamReaderImpl::TransferData( 375 void ByteStreamReaderImpl::TransferData(
378 scoped_refptr<LifetimeFlag> object_lifetime_flag, 376 scoped_refptr<LifetimeFlag> object_lifetime_flag,
379 ByteStreamReaderImpl* target, 377 ByteStreamReaderImpl* target,
380 scoped_ptr<ContentVector> transfer_buffer, 378 std::unique_ptr<ContentVector> transfer_buffer,
381 size_t buffer_size, 379 size_t buffer_size,
382 bool source_complete, 380 bool source_complete,
383 int status) { 381 int status) {
384 // If our target is no longer alive, do nothing. 382 // If our target is no longer alive, do nothing.
385 if (!object_lifetime_flag->is_alive) return; 383 if (!object_lifetime_flag->is_alive) return;
386 384
387 target->TransferDataInternal(std::move(transfer_buffer), buffer_size, 385 target->TransferDataInternal(std::move(transfer_buffer), buffer_size,
388 source_complete, status); 386 source_complete, status);
389 } 387 }
390 388
391 void ByteStreamReaderImpl::TransferDataInternal( 389 void ByteStreamReaderImpl::TransferDataInternal(
392 scoped_ptr<ContentVector> transfer_buffer, 390 std::unique_ptr<ContentVector> transfer_buffer,
393 size_t buffer_size, 391 size_t buffer_size,
394 bool source_complete, 392 bool source_complete,
395 int status) { 393 int status) {
396 DCHECK(my_task_runner_->RunsTasksOnCurrentThread()); 394 DCHECK(my_task_runner_->RunsTasksOnCurrentThread());
397 395
398 bool was_empty = available_contents_.empty(); 396 bool was_empty = available_contents_.empty();
399 397
400 if (transfer_buffer) { 398 if (transfer_buffer) {
401 available_contents_.insert(available_contents_.end(), 399 available_contents_.insert(available_contents_.end(),
402 transfer_buffer->begin(), 400 transfer_buffer->begin(),
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 const int ByteStreamReader::kFractionReadBeforeWindowUpdate = 3; 439 const int ByteStreamReader::kFractionReadBeforeWindowUpdate = 3;
442 440
443 ByteStreamReader::~ByteStreamReader() { } 441 ByteStreamReader::~ByteStreamReader() { }
444 442
445 ByteStreamWriter::~ByteStreamWriter() { } 443 ByteStreamWriter::~ByteStreamWriter() { }
446 444
447 void CreateByteStream( 445 void CreateByteStream(
448 scoped_refptr<base::SequencedTaskRunner> input_task_runner, 446 scoped_refptr<base::SequencedTaskRunner> input_task_runner,
449 scoped_refptr<base::SequencedTaskRunner> output_task_runner, 447 scoped_refptr<base::SequencedTaskRunner> output_task_runner,
450 size_t buffer_size, 448 size_t buffer_size,
451 scoped_ptr<ByteStreamWriter>* input, 449 std::unique_ptr<ByteStreamWriter>* input,
452 scoped_ptr<ByteStreamReader>* output) { 450 std::unique_ptr<ByteStreamReader>* output) {
453 scoped_refptr<LifetimeFlag> input_flag(new LifetimeFlag()); 451 scoped_refptr<LifetimeFlag> input_flag(new LifetimeFlag());
454 scoped_refptr<LifetimeFlag> output_flag(new LifetimeFlag()); 452 scoped_refptr<LifetimeFlag> output_flag(new LifetimeFlag());
455 453
456 ByteStreamWriterImpl* in = new ByteStreamWriterImpl( 454 ByteStreamWriterImpl* in = new ByteStreamWriterImpl(
457 input_task_runner, input_flag, buffer_size); 455 input_task_runner, input_flag, buffer_size);
458 ByteStreamReaderImpl* out = new ByteStreamReaderImpl( 456 ByteStreamReaderImpl* out = new ByteStreamReaderImpl(
459 output_task_runner, output_flag, buffer_size); 457 output_task_runner, output_flag, buffer_size);
460 458
461 in->SetPeer(out, output_task_runner, output_flag); 459 in->SetPeer(out, output_task_runner, output_flag);
462 out->SetPeer(in, input_task_runner, input_flag); 460 out->SetPeer(in, input_task_runner, input_flag);
463 input->reset(in); 461 input->reset(in);
464 output->reset(out); 462 output->reset(out);
465 } 463 }
466 464
467 } // namespace content 465 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/byte_stream.h ('k') | content/browser/byte_stream_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698