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.
5 #ifndef DEVICE_SERIAL_BUFFER_H_
6 #define DEVICE_SERIAL_BUFFER_H_
8 #include "base/basictypes.h"
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.
16 class ReadOnlyBuffer
{
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;
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.
29 class WritableBuffer
{
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;
40 #endif // DEVICE_SERIAL_BUFFER_H_