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 module device.serial { | 5 module device.serial { |
6 | 6 |
7 [Client=DataSourceClient] | 7 [Client=DataSourceClient] |
8 interface DataSource { | 8 interface DataSource { |
9 // Initializes this DataSource with a data pipe handle to use for data | 9 // Initializes this DataSource with the amount of data its client will |
10 // transmission. | 10 // buffer. |
11 Init(handle<data_pipe_producer> producer_handle); | 11 Init(uint32 buffer_size); |
12 | 12 |
13 // Resumes sending data after it has been stopped due to an error. | 13 // Resumes sending data after it has been stopped due to an error. |
14 Resume(); | 14 Resume(); |
15 | |
16 // Reports that |bytes_sent| bytes have been successfully passed to the | |
17 // client. | |
18 ReportBytesSent(uint32 bytes_sent); | |
raymes
2014/10/27 03:02:23
Hmm maybe ReportBytesReceived is clearer?
Sam McNally
2014/10/27 05:39:14
Done.
| |
15 }; | 19 }; |
16 | 20 |
17 interface DataSourceClient { | 21 interface DataSourceClient { |
18 // Invoked to report |error| from the DataSource, at |error_location| bytes | 22 // Invoked to report |error| from the DataSource. No further bytes will be |
19 // into the data stream. No further bytes beyond |error_location| will be | |
20 // transmitted from the DataSource until Resume() is called. | 23 // transmitted from the DataSource until Resume() is called. |
21 OnError(uint32 error_location, int32 error); | 24 OnError(int32 error); |
25 | |
26 // Invoked to transmit data from the DataSource. | |
27 OnData(array<uint8> data); | |
22 }; | 28 }; |
23 | 29 |
24 [Client=DataSinkClient] | 30 [Client=DataSinkClient] |
25 interface DataSink { | 31 interface DataSink { |
26 // Initializes this DataSink with a data pipe handle to use for data | 32 // Initializes this DataSink with the amount of data it is expected to |
27 // transmission. | 33 // buffer. |
28 Init(handle<data_pipe_consumer> consumer_handle); | 34 Init(uint32 buffer_size); |
29 | 35 |
30 // Requests the cancellation of any data that has been written to the pipe, | 36 // Requests the cancellation of any data that has been written to the pipe, |
31 // but has not yet been sent to the sink. | 37 // but has not yet been sent to the sink. |
32 Cancel(int32 error); | 38 Cancel(int32 error); |
39 | |
40 // Invoked to pass |data| to the sink. | |
41 OnData(array<uint8> data); | |
33 }; | 42 }; |
34 | 43 |
35 interface DataSinkClient { | 44 interface DataSinkClient { |
36 // Reports that the sink has successfully received |bytes_sent| bytes of data. | 45 // Reports that the sink has successfully received |bytes_sent| bytes of data. |
37 ReportBytesSent(uint32 bytes_sent); | 46 ReportBytesSent(uint32 bytes_sent); |
38 | 47 |
39 // Reports that the sink has received |bytes_sent| bytes of data (possibly 0) | 48 // Reports that the sink has received |bytes_sent| bytes of data (possibly 0) |
40 // and encountered an error: |error|. The client should respond with | 49 // and encountered an error: |error|. Any OnData messages received by the |
41 // |bytes_to_flush|, the number of bytes enqueued in the data pipe but not yet | 50 // DataSink before the response will be discarded. The client should respond |
42 // acked so the correct number of bytes can be flushed from the pipe. | 51 // when it is ready to resume sending data. |
43 ReportBytesSentAndError(uint32 bytes_sent, int32 error) => (uint32 bytes_to_fl ush); | 52 ReportBytesSentAndError(uint32 bytes_sent, int32 error) => (); |
44 }; | 53 }; |
45 | 54 |
46 } | 55 } |
OLD | NEW |