// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. module device.serial; interface DataSource { // Initializes this DataSource with the amount of data its client will // buffer. Init(uint32 buffer_size); // Resumes sending data after it has been stopped due to an error. Resume(); // Reports that |bytes_sent| bytes have been successfully passed to the // client. ReportBytesReceived(uint32 bytes_sent); }; interface DataSourceClient { // Invoked to report |error| from the DataSource. No further bytes will be // transmitted from the DataSource until Resume() is called. OnError(int32 error); // Invoked to transmit data from the DataSource. OnData(array data); }; interface DataSink { // Requests the cancellation of any data that has been written to the pipe, // but has not yet been sent to the sink. Cancel(int32 error); // Invoked to pass |data| to the sink. The response contains the number of // bytes successfully sent and an optional error. If |error| is zero, // |bytes_sent| will the size of |data|. OnData(array data) => (uint32 bytes_sent, int32 error); // Called to clear the error and resume data transmission after an error // occurs. After an error is reported in response to an OnData until // ClearError is called, any further OnData calls will report the same error // as the first error response. ClearError(); };