OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef DEVICE_SERIAL_SERIAL_SERVICE_IMPL_H_ | 5 #ifndef DEVICE_SERIAL_SERIAL_SERVICE_IMPL_H_ |
6 #define DEVICE_SERIAL_SERIAL_SERVICE_IMPL_H_ | 6 #define DEVICE_SERIAL_SERIAL_SERVICE_IMPL_H_ |
7 | 7 |
| 8 #include <memory> |
| 9 |
8 #include "base/macros.h" | 10 #include "base/macros.h" |
9 #include "base/memory/scoped_ptr.h" | |
10 #include "base/single_thread_task_runner.h" | 11 #include "base/single_thread_task_runner.h" |
11 #include "base/thread_task_runner_handle.h" | 12 #include "base/thread_task_runner_handle.h" |
12 #include "device/serial/data_stream.mojom.h" | 13 #include "device/serial/data_stream.mojom.h" |
13 #include "device/serial/serial.mojom.h" | 14 #include "device/serial/serial.mojom.h" |
14 #include "device/serial/serial_connection_factory.h" | 15 #include "device/serial/serial_connection_factory.h" |
15 #include "device/serial/serial_device_enumerator.h" | 16 #include "device/serial/serial_device_enumerator.h" |
16 #include "mojo/public/cpp/bindings/strong_binding.h" | 17 #include "mojo/public/cpp/bindings/strong_binding.h" |
17 | 18 |
18 namespace device { | 19 namespace device { |
19 | 20 |
20 class SerialServiceImpl : public serial::SerialService { | 21 class SerialServiceImpl : public serial::SerialService { |
21 public: | 22 public: |
22 SerialServiceImpl(scoped_refptr<SerialConnectionFactory> connection_factory, | 23 SerialServiceImpl(scoped_refptr<SerialConnectionFactory> connection_factory, |
23 mojo::InterfaceRequest<serial::SerialService> request); | 24 mojo::InterfaceRequest<serial::SerialService> request); |
24 SerialServiceImpl(scoped_refptr<SerialConnectionFactory> connection_factory, | 25 SerialServiceImpl(scoped_refptr<SerialConnectionFactory> connection_factory, |
25 scoped_ptr<SerialDeviceEnumerator> device_enumerator, | 26 std::unique_ptr<SerialDeviceEnumerator> device_enumerator, |
26 mojo::InterfaceRequest<serial::SerialService> request); | 27 mojo::InterfaceRequest<serial::SerialService> request); |
27 ~SerialServiceImpl() override; | 28 ~SerialServiceImpl() override; |
28 | 29 |
29 static void Create(scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, | 30 static void Create(scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, |
30 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner, | 31 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner, |
31 mojo::InterfaceRequest<serial::SerialService> request); | 32 mojo::InterfaceRequest<serial::SerialService> request); |
32 static void CreateOnMessageLoop( | 33 static void CreateOnMessageLoop( |
33 scoped_refptr<base::SingleThreadTaskRunner> task_runner, | 34 scoped_refptr<base::SingleThreadTaskRunner> task_runner, |
34 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, | 35 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, |
35 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner, | 36 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner, |
36 mojo::InterfaceRequest<serial::SerialService> request); | 37 mojo::InterfaceRequest<serial::SerialService> request); |
37 | 38 |
38 // SerialService overrides. | 39 // SerialService overrides. |
39 void GetDevices( | 40 void GetDevices( |
40 const mojo::Callback<void(mojo::Array<serial::DeviceInfoPtr>)>& callback) | 41 const mojo::Callback<void(mojo::Array<serial::DeviceInfoPtr>)>& callback) |
41 override; | 42 override; |
42 void Connect( | 43 void Connect( |
43 const mojo::String& path, | 44 const mojo::String& path, |
44 serial::ConnectionOptionsPtr options, | 45 serial::ConnectionOptionsPtr options, |
45 mojo::InterfaceRequest<serial::Connection> connection_request, | 46 mojo::InterfaceRequest<serial::Connection> connection_request, |
46 mojo::InterfaceRequest<serial::DataSink> sink, | 47 mojo::InterfaceRequest<serial::DataSink> sink, |
47 mojo::InterfaceRequest<serial::DataSource> source, | 48 mojo::InterfaceRequest<serial::DataSource> source, |
48 mojo::InterfacePtr<serial::DataSourceClient> source_client) override; | 49 mojo::InterfacePtr<serial::DataSourceClient> source_client) override; |
49 | 50 |
50 private: | 51 private: |
51 SerialDeviceEnumerator* GetDeviceEnumerator(); | 52 SerialDeviceEnumerator* GetDeviceEnumerator(); |
52 bool IsValidPath(const mojo::String& path); | 53 bool IsValidPath(const mojo::String& path); |
53 | 54 |
54 scoped_ptr<SerialDeviceEnumerator> device_enumerator_; | 55 std::unique_ptr<SerialDeviceEnumerator> device_enumerator_; |
55 scoped_refptr<SerialConnectionFactory> connection_factory_; | 56 scoped_refptr<SerialConnectionFactory> connection_factory_; |
56 mojo::StrongBinding<serial::SerialService> binding_; | 57 mojo::StrongBinding<serial::SerialService> binding_; |
57 | 58 |
58 DISALLOW_COPY_AND_ASSIGN(SerialServiceImpl); | 59 DISALLOW_COPY_AND_ASSIGN(SerialServiceImpl); |
59 }; | 60 }; |
60 | 61 |
61 } // namespace device | 62 } // namespace device |
62 | 63 |
63 #endif // DEVICE_SERIAL_SERIAL_SERVICE_IMPL_H_ | 64 #endif // DEVICE_SERIAL_SERIAL_SERVICE_IMPL_H_ |
OLD | NEW |