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 3 // found in the LICENSE file. 4 5 #ifndef DEVICE_SERIAL_TEST_SERIAL_IO_HANDLER_H_ 6 #define DEVICE_SERIAL_TEST_SERIAL_IO_HANDLER_H_ 7 8 #include <string> 9 10 #include "base/callback.h" 11 #include "device/serial/serial.mojom.h" 12 #include "device/serial/serial_io_handler.h" 13 14 namespace device { 15 16 class TestSerialIoHandler : public SerialIoHandler { 17 public: 18 TestSerialIoHandler(); 19 20 static scoped_refptr<SerialIoHandler> Create(); 21 22 // SerialIoHandler overrides. 23 virtual void Open(const std::string& port, 24 const OpenCompleteCallback& callback) OVERRIDE; 25 virtual bool ConfigurePort(const serial::ConnectionOptions& options) OVERRIDE; 26 virtual void ReadImpl() OVERRIDE; 27 virtual void CancelReadImpl() OVERRIDE; 28 virtual void WriteImpl() OVERRIDE; 29 virtual void CancelWriteImpl() OVERRIDE; 30 virtual serial::DeviceControlSignalsPtr GetControlSignals() const OVERRIDE; 31 virtual serial::ConnectionInfoPtr GetPortInfo() const OVERRIDE; 32 virtual bool Flush() const OVERRIDE; 33 virtual bool SetControlSignals( 34 const serial::HostControlSignals& signals) OVERRIDE; 35 connection_info()36 serial::ConnectionInfo* connection_info() { return &info_; } device_control_signals()37 serial::DeviceControlSignals* device_control_signals() { 38 return &device_control_signals_; 39 } dtr()40 bool dtr() { return dtr_; } rts()41 bool rts() { return rts_; } flushes()42 int flushes() { return flushes_; } 43 // This callback will be called when this IoHandler processes its next write, 44 // instead of the normal behavior of echoing the data to reads. set_send_callback(const base::Closure & callback)45 void set_send_callback(const base::Closure& callback) { 46 send_callback_ = callback; 47 } 48 49 protected: 50 virtual ~TestSerialIoHandler(); 51 52 private: 53 bool opened_; 54 serial::ConnectionInfo info_; 55 serial::DeviceControlSignals device_control_signals_; 56 bool dtr_; 57 bool rts_; 58 mutable int flushes_; 59 std::string buffer_; 60 base::Closure send_callback_; 61 62 DISALLOW_COPY_AND_ASSIGN(TestSerialIoHandler); 63 }; 64 65 } // namespace device 66 67 #endif // DEVICE_SERIAL_TEST_SERIAL_IO_HANDLER_H_ 68