Upload upstream chromium 69.0.3497
[platform/framework/web/chromium-efl.git] / device / serial / buffer.cc
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 #include "base/numerics/safe_conversions.h"
6 #include "device/serial/buffer.h"
7 #include "net/base/io_buffer.h"
8
9 namespace device {
10
11 ReadOnlyBuffer::~ReadOnlyBuffer() = default;
12
13 WritableBuffer::~WritableBuffer() = default;
14
15 SendBuffer::SendBuffer(const std::vector<uint8_t>& data,
16                        SendCompleteCallback callback)
17     : data_(data), callback_(std::move(callback)) {}
18
19 SendBuffer::~SendBuffer() = default;
20
21 const uint8_t* SendBuffer::GetData() {
22   return data_.data();
23 }
24
25 uint32_t SendBuffer::GetSize() {
26   return base::checked_cast<uint32_t>(data_.size());
27 }
28
29 void SendBuffer::Done(uint32_t bytes_read) {
30   std::move(callback_).Run(bytes_read, device::mojom::SerialSendError::NONE);
31 }
32
33 void SendBuffer::DoneWithError(uint32_t bytes_read, int32_t error) {
34   std::move(callback_).Run(bytes_read,
35                            static_cast<device::mojom::SerialSendError>(error));
36 }
37
38 ReceiveBuffer::ReceiveBuffer(scoped_refptr<net::IOBuffer> buffer,
39                              uint32_t size,
40                              ReceiveCompleteCallback callback)
41     : buffer_(buffer), size_(size), callback_(std::move(callback)) {}
42
43 ReceiveBuffer::~ReceiveBuffer() = default;
44
45 char* ReceiveBuffer::GetData() {
46   return buffer_->data();
47 }
48
49 uint32_t ReceiveBuffer::GetSize() {
50   return size_;
51 }
52
53 void ReceiveBuffer::Done(uint32_t bytes_written) {
54   std::move(callback_).Run(bytes_written,
55                            device::mojom::SerialReceiveError::NONE);
56 }
57
58 void ReceiveBuffer::DoneWithError(uint32_t bytes_written, int32_t error) {
59   std::move(callback_).Run(
60       bytes_written, static_cast<device::mojom::SerialReceiveError>(error));
61 }
62
63 }  // namespace device