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

Side by Side Diff: device/serial/data_sink_receiver.cc

Issue 1874313002: Convert device 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 | « device/serial/data_sink_receiver.h ('k') | device/serial/data_sink_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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "device/serial/data_sink_receiver.h" 5 #include "device/serial/data_sink_receiver.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <memory>
8 #include <utility> 9 #include <utility>
9 10
10 #include "base/bind.h" 11 #include "base/bind.h"
11 #include "base/message_loop/message_loop.h" 12 #include "base/message_loop/message_loop.h"
12 13
13 namespace device { 14 namespace device {
14 15
15 // A ReadOnlyBuffer implementation that provides a view of a buffer owned by a 16 // A ReadOnlyBuffer implementation that provides a view of a buffer owned by a
16 // DataSinkReceiver. 17 // DataSinkReceiver.
17 class DataSinkReceiver::Buffer : public ReadOnlyBuffer { 18 class DataSinkReceiver::Buffer : public ReadOnlyBuffer {
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 void DataSinkReceiver::RunReadyCallback() { 137 void DataSinkReceiver::RunReadyCallback() {
137 DCHECK(!shut_down_ && !current_error_); 138 DCHECK(!shut_down_ && !current_error_);
138 // If data arrives while a call to RunReadyCallback() is posted, we can be 139 // If data arrives while a call to RunReadyCallback() is posted, we can be
139 // called with buffer_in_use_ already set. 140 // called with buffer_in_use_ already set.
140 if (buffer_in_use_) 141 if (buffer_in_use_)
141 return; 142 return;
142 buffer_in_use_ = 143 buffer_in_use_ =
143 new Buffer(this, 144 new Buffer(this,
144 pending_data_buffers_.front()->GetData(), 145 pending_data_buffers_.front()->GetData(),
145 pending_data_buffers_.front()->GetRemainingBytes()); 146 pending_data_buffers_.front()->GetRemainingBytes());
146 ready_callback_.Run(scoped_ptr<ReadOnlyBuffer>(buffer_in_use_)); 147 ready_callback_.Run(std::unique_ptr<ReadOnlyBuffer>(buffer_in_use_));
147 } 148 }
148 149
149 void DataSinkReceiver::Done(uint32_t bytes_read) { 150 void DataSinkReceiver::Done(uint32_t bytes_read) {
150 if (!DoneInternal(bytes_read)) 151 if (!DoneInternal(bytes_read))
151 return; 152 return;
152 pending_data_buffers_.front()->OnDataConsumed(bytes_read); 153 pending_data_buffers_.front()->OnDataConsumed(bytes_read);
153 if (pending_data_buffers_.front()->GetRemainingBytes() == 0) 154 if (pending_data_buffers_.front()->GetRemainingBytes() == 0)
154 pending_data_buffers_.pop(); 155 pending_data_buffers_.pop();
155 if (!pending_data_buffers_.empty()) { 156 if (!pending_data_buffers_.empty()) {
156 base::MessageLoop::current()->PostTask( 157 base::MessageLoop::current()->PostTask(
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 callback_.Run(offset_, 0); 278 callback_.Run(offset_, 0);
278 } 279 }
279 void DataSinkReceiver::DataFrame::ReportError(uint32_t bytes_read, 280 void DataSinkReceiver::DataFrame::ReportError(uint32_t bytes_read,
280 int32_t error) { 281 int32_t error) {
281 offset_ += bytes_read; 282 offset_ += bytes_read;
282 DCHECK_LE(offset_, data_.size()); 283 DCHECK_LE(offset_, data_.size());
283 callback_.Run(offset_, error); 284 callback_.Run(offset_, error);
284 } 285 }
285 286
286 } // namespace device 287 } // namespace device
OLDNEW
« no previous file with comments | « device/serial/data_sink_receiver.h ('k') | device/serial/data_sink_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698