OLD | NEW |
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_receiver.h" | 5 #include "device/serial/data_receiver.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 DataReceiver::DataReceiver( | 110 DataReceiver::DataReceiver( |
111 mojo::InterfacePtr<serial::DataSource> source, | 111 mojo::InterfacePtr<serial::DataSource> source, |
112 mojo::InterfaceRequest<serial::DataSourceClient> client, | 112 mojo::InterfaceRequest<serial::DataSourceClient> client, |
113 uint32_t buffer_size, | 113 uint32_t buffer_size, |
114 int32_t fatal_error_value) | 114 int32_t fatal_error_value) |
115 : source_(source.Pass()), | 115 : source_(source.Pass()), |
116 client_(this, client.Pass()), | 116 client_(this, client.Pass()), |
117 fatal_error_value_(fatal_error_value), | 117 fatal_error_value_(fatal_error_value), |
118 shut_down_(false), | 118 shut_down_(false), |
119 weak_factory_(this) { | 119 weak_factory_(this) { |
120 source_.set_error_handler(this); | 120 source_.set_connection_error_handler( |
| 121 base::Bind(&DataReceiver::OnConnectionError, base::Unretained(this))); |
121 source_->Init(buffer_size); | 122 source_->Init(buffer_size); |
122 client_.set_error_handler(this); | 123 client_.set_connection_error_handler( |
| 124 base::Bind(&DataReceiver::OnConnectionError, base::Unretained(this))); |
123 } | 125 } |
124 | 126 |
125 bool DataReceiver::Receive(const ReceiveDataCallback& callback, | 127 bool DataReceiver::Receive(const ReceiveDataCallback& callback, |
126 const ReceiveErrorCallback& error_callback) { | 128 const ReceiveErrorCallback& error_callback) { |
127 DCHECK(!callback.is_null() && !error_callback.is_null()); | 129 DCHECK(!callback.is_null() && !error_callback.is_null()); |
128 if (pending_receive_ || shut_down_) | 130 if (pending_receive_ || shut_down_) |
129 return false; | 131 return false; |
130 // When the DataSource encounters an error, it pauses transmission. When the | 132 // When the DataSource encounters an error, it pauses transmission. When the |
131 // user starts a new receive following notification of the error (via | 133 // user starts a new receive following notification of the error (via |
132 // |error_callback| of the previous Receive call) of the error we can tell the | 134 // |error_callback| of the previous Receive call) of the error we can tell the |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 buffer_size_ = 0; | 281 buffer_size_ = 0; |
280 } | 282 } |
281 | 283 |
282 void DataReceiver::PendingReceive::Buffer::DoneWithError( | 284 void DataReceiver::PendingReceive::Buffer::DoneWithError( |
283 uint32_t bytes_consumed, | 285 uint32_t bytes_consumed, |
284 int32_t error) { | 286 int32_t error) { |
285 Done(bytes_consumed); | 287 Done(bytes_consumed); |
286 } | 288 } |
287 | 289 |
288 } // namespace device | 290 } // namespace device |
OLD | NEW |