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.
5 #ifndef DEVICE_SERIAL_SERIAL_CONNECTION_H_
6 #define DEVICE_SERIAL_SERIAL_CONNECTION_H_
8 #include "base/memory/ref_counted.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "device/serial/serial.mojom.h"
11 #include "mojo/public/cpp/bindings/interface_impl.h"
15 class DataSinkReceiver
;
16 class DataSourceSender
;
18 class SerialIoHandler
;
21 class SerialConnection
: public mojo::InterfaceImpl
<serial::Connection
> {
23 SerialConnection(scoped_refptr
<SerialIoHandler
> io_handler
,
24 mojo::InterfaceRequest
<serial::DataSink
> sink
,
25 mojo::InterfaceRequest
<serial::DataSource
> source
);
26 ~SerialConnection() override
;
28 // mojo::InterfaceImpl<serial::Connection> overrides.
30 const mojo::Callback
<void(serial::ConnectionInfoPtr
)>& callback
) override
;
31 void SetOptions(serial::ConnectionOptionsPtr options
,
32 const mojo::Callback
<void(bool)>& callback
) override
;
33 void SetControlSignals(serial::HostControlSignalsPtr signals
,
34 const mojo::Callback
<void(bool)>& callback
) override
;
35 void GetControlSignals(
36 const mojo::Callback
<void(serial::DeviceControlSignalsPtr
)>& callback
)
38 void Flush(const mojo::Callback
<void(bool)>& callback
) override
;
41 void OnSendPipeReady(scoped_ptr
<ReadOnlyBuffer
> buffer
);
42 void OnSendCancelled(int32_t error
);
43 void OnReceivePipeReady(scoped_ptr
<WritableBuffer
> buffer
);
45 scoped_refptr
<SerialIoHandler
> io_handler_
;
46 scoped_refptr
<DataSinkReceiver
> receiver_
;
47 scoped_refptr
<DataSourceSender
> sender_
;
49 DISALLOW_COPY_AND_ASSIGN(SerialConnection
);
54 #endif // DEVICE_SERIAL_SERIAL_CONNECTION_H_