Index: device/serial/serial_connection.cc |
diff --git a/device/serial/serial_connection.cc b/device/serial/serial_connection.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0845b88189ce37de01e71229723ce0afa7d5f8e0 |
--- /dev/null |
+++ b/device/serial/serial_connection.cc |
@@ -0,0 +1,49 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "device/serial/serial_connection.h" |
+ |
+#include "device/serial/serial_io_handler.h" |
+ |
+namespace device { |
+ |
+SerialConnection::SerialConnection(scoped_refptr<SerialIoHandler> io_handler) |
+ : io_handler_(io_handler) { |
+ // TODO(sammc): Call io_handler_->Initialize() once we support send and recv. |
+} |
+ |
+SerialConnection::~SerialConnection() { |
+} |
+ |
+void SerialConnection::GetInfo( |
+ const mojo::Callback<void(serial::ConnectionInfoPtr)>& callback) { |
+ callback.Run(io_handler_->GetPortInfo()); |
+} |
+ |
+void SerialConnection::SetOptions(serial::ConnectionOptionsPtr options, |
+ const mojo::Callback<void(bool)>& callback) { |
+ callback.Run(io_handler_->ConfigurePort(*options)); |
+ io_handler_->CancelRead(device::serial::RECEIVE_ERROR_NONE); |
+} |
+ |
+void SerialConnection::SetControlSignals( |
+ serial::HostControlSignalsPtr signals, |
+ const mojo::Callback<void(bool)>& callback) { |
+ callback.Run(io_handler_->SetControlSignals(*signals)); |
+} |
+ |
+void SerialConnection::GetControlSignals( |
+ const mojo::Callback<void(serial::DeviceControlSignalsPtr)>& callback) { |
+ callback.Run(io_handler_->GetControlSignals()); |
+} |
+ |
+void SerialConnection::Flush(const mojo::Callback<void(bool)>& callback) { |
+ callback.Run(io_handler_->Flush()); |
+} |
+ |
+void SerialConnection::OnConnectionError() { |
+ delete this; |
+} |
+ |
+} // namespace device |