Home | History | Annotate | Download | only in serial
      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 
      5 module device.serial {
      6 
      7 [Client=DataSourceClient]
      8 interface DataSource {
      9   // Initializes this DataSource with a data pipe handle to use for data
     10   // transmission.
     11   Init(handle<data_pipe_producer> producer_handle);
     12 
     13   // Resumes sending data after it has been stopped due to an error.
     14   Resume();
     15 };
     16 
     17 interface DataSourceClient {
     18   // Invoked to report |error| from the DataSource, at |error_location| bytes
     19   // into the data stream. No further bytes beyond |error_location| will be
     20   // transmitted from the DataSource until Resume() is called.
     21   OnError(uint32 error_location, int32 error);
     22 };
     23 
     24 [Client=DataSinkClient]
     25 interface DataSink {
     26   // Initializes this DataSink with a data pipe handle to use for data
     27   // transmission.
     28   Init(handle<data_pipe_consumer> consumer_handle);
     29 
     30   // Requests the cancellation of any data that has been written to the pipe,
     31   // but has not yet been sent to the sink.
     32   Cancel(int32 error);
     33 };
     34 
     35 interface DataSinkClient {
     36   // Reports that the sink has successfully received |bytes_sent| bytes of data.
     37   ReportBytesSent(uint32 bytes_sent);
     38 
     39   // Reports that the sink has received |bytes_sent| bytes of data (possibly 0)
     40   // and encountered an error: |error|. The client should respond with
     41   // |bytes_to_flush|, the number of bytes enqueued in the data pipe but not yet
     42   // acked so the correct number of bytes can be flushed from the pipe.
     43   ReportBytesSentAndError(uint32 bytes_sent, int32 error) => (uint32 bytes_to_flush);
     44 };
     45 
     46 }
     47