Add twellington@ to third_party/document_image_extractor/OWNERS
[chromium-blink-merge.git] / device / serial / buffer.h
blob49169d7e511dfaebca3b9a64584521816453bec2
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"
10 namespace device {
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 {
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;
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 {
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;
38 } // namespace device
40 #endif // DEVICE_SERIAL_BUFFER_H_