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
5import "data_stream.mojom"
6
7module device.serial {
8
9// A serialized form of a DataSender.
10struct SerializedDataSender {
11  // The control channel to the DataSink to which this DataSender sends data.
12  DataSink sink;
13
14  // The data pipe this DataSender uses to send data to the DataSink.
15  handle<data_pipe_producer> data_pipe;
16
17  // The error to report for sends in progress when a fatal error occurs.
18  int32 fatal_error_value;
19};
20
21// A pending receive error.
22struct PendingReceiveError {
23  // The value of the error.
24  int32 error;
25
26  // The location of the error.
27  uint32 offset;
28};
29
30// A serialized form of a DataReceiver.
31struct SerializedDataReceiver {
32  // The control channel to the DataSource from which this DataReceiver receives
33  // data.
34  DataSource source;
35
36  // The data pipe this DataReceiver uses to receive data from the DataSource.
37  handle<data_pipe_consumer> data_pipe;
38
39  // The error to report for a receive in progress when a fatal error occurs.
40  int32 fatal_error_value;
41
42  // The number of bytes this DataReceiver has received from the DataSource.
43  uint32 bytes_received;
44
45  // Whether a Resume() message needs to be sent to the DataSource for it to
46  // resume sending data.
47  bool paused;
48
49  // The pending receive error if there is one.
50  PendingReceiveError? pending_error;
51};
52
53}
54