Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / device / serial / test_serial_io_handler.h
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
44  protected:
45   virtual ~TestSerialIoHandler();
46
47  private:
48   bool opened_;
49   serial::ConnectionInfo info_;
50   serial::DeviceControlSignals device_control_signals_;
51   bool dtr_;
52   bool rts_;
53   mutable int flushes_;
54
55   DISALLOW_COPY_AND_ASSIGN(TestSerialIoHandler);
56 };
57
58 }  // namespace device
59
60 #endif  // DEVICE_SERIAL_TEST_SERIAL_IO_HANDLER_H_