• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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