Home | History | Annotate | Download | only in serial
      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 
     36   serial::ConnectionInfo* connection_info() { return &info_; }
     37   serial::DeviceControlSignals* device_control_signals() {
     38     return &device_control_signals_;
     39   }
     40   bool dtr() { return dtr_; }
     41   bool rts() { return rts_; }
     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.
     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