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#ifndef DEVICE_SERIAL_BUFFER_H_ 6#define DEVICE_SERIAL_BUFFER_H_ 7 8#include "base/basictypes.h" 9 10namespace device { 11 12// A fixed-size read-only buffer. The data-reader should call Done() when it is 13// finished reading bytes from the buffer. Alternatively, the reader can report 14// an error by calling DoneWithError() with the number of bytes read and the 15// error it wishes to report. 16class ReadOnlyBuffer { 17 public: 18 virtual ~ReadOnlyBuffer(); 19 virtual const char* GetData() = 0; 20 virtual uint32_t GetSize() = 0; 21 virtual void Done(uint32_t bytes_read) = 0; 22 virtual void DoneWithError(uint32_t bytes_read, int32_t error) = 0; 23}; 24 25// A fixed-size writable buffer. The data-writer should call Done() when it is 26// finished writing bytes to the buffer. Alternatively, the writer can report 27// an error by calling DoneWithError() with the number of bytes written and the 28// error it wishes to report. 29class WritableBuffer { 30 public: 31 virtual ~WritableBuffer(); 32 virtual char* GetData() = 0; 33 virtual uint32_t GetSize() = 0; 34 virtual void Done(uint32_t bytes_written) = 0; 35 virtual void DoneWithError(uint32_t bytes_written, int32_t error) = 0; 36}; 37 38} // namespace device 39 40#endif // DEVICE_SERIAL_BUFFER_H_ 41