[M73 Dev][Tizen] Fix linker errors
[platform/framework/web/chromium-efl.git] / services / device / serial / serial_port_impl.h
1 // Copyright 2017 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 SERVICES_DEVICE_SERIAL_SERIAL_PORT_IMPL_H_
6 #define SERVICES_DEVICE_SERIAL_SERIAL_PORT_IMPL_H_
7
8 #include <string>
9 #include <vector>
10
11 #include "base/macros.h"
12 #include "base/memory/ref_counted.h"
13 #include "services/device/public/mojom/serial.mojom.h"
14
15 namespace base {
16 class SingleThreadTaskRunner;
17 }
18
19 namespace device {
20
21 class SerialIoHandler;
22
23 // TODO(leonhsl): Merge this class with SerialIoHandler if/once
24 // SerialIoHandler is exposed only via the Device Service.
25 // crbug.com/748505
26 // This class must be constructed and run on IO thread.
27 class SerialPortImpl : public mojom::SerialPort {
28  public:
29   static void Create(
30       const base::FilePath& path,
31       mojom::SerialPortRequest request,
32       scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner);
33
34   SerialPortImpl(const base::FilePath& path,
35                  scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner);
36   ~SerialPortImpl() override;
37
38  private:
39   // mojom::SerialPort methods:
40   void Open(mojom::SerialConnectionOptionsPtr options,
41             OpenCallback callback) override;
42   void Read(uint32_t bytes, ReadCallback callback) override;
43   void Write(const std::vector<uint8_t>& data, WriteCallback callback) override;
44   void CancelRead(mojom::SerialReceiveError reason) override;
45   void CancelWrite(mojom::SerialSendError reason) override;
46   void Flush(FlushCallback callback) override;
47   void GetControlSignals(GetControlSignalsCallback callback) override;
48   void SetControlSignals(mojom::SerialHostControlSignalsPtr signals,
49                          SetControlSignalsCallback callback) override;
50   void ConfigurePort(mojom::SerialConnectionOptionsPtr options,
51                      ConfigurePortCallback callback) override;
52   void GetPortInfo(GetPortInfoCallback callback) override;
53   void SetBreak(SetBreakCallback callback) override;
54   void ClearBreak(ClearBreakCallback callback) override;
55
56   scoped_refptr<SerialIoHandler> io_handler_;
57
58   DISALLOW_COPY_AND_ASSIGN(SerialPortImpl);
59 };
60
61 }  // namespace device
62
63 #endif  // SERVICES_DEVICE_SERIAL_SERIAL_PORT_IMPL_H_