1234567891011121314151617181920212223242526272829303132333435363738 |
- // Copyright 2018 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.
- #include "ipc/message_mojom_traits.h"
- namespace mojo {
- // static
- base::span<const uint8_t>
- StructTraits<IPC::mojom::MessageDataView, IPC::MessageView>::bytes(
- IPC::MessageView& view) {
- return view.bytes();
- }
- // static
- absl::optional<std::vector<mojo::native::SerializedHandlePtr>>
- StructTraits<IPC::mojom::MessageDataView, IPC::MessageView>::handles(
- IPC::MessageView& view) {
- return view.TakeHandles();
- }
- // static
- bool StructTraits<IPC::mojom::MessageDataView, IPC::MessageView>::Read(
- IPC::mojom::MessageDataView data,
- IPC::MessageView* out) {
- mojo::ArrayDataView<uint8_t> bytes;
- data.GetBytesDataView(&bytes);
- absl::optional<std::vector<mojo::native::SerializedHandlePtr>> handles;
- if (!data.ReadHandles(&handles))
- return false;
- *out = IPC::MessageView(bytes, std::move(handles));
- return true;
- }
- } // namespace mojo
|