blob: 76ddaa6cea48cde02e60c7278d4233207d5c0aa0 [file] [log] [blame]
// Copyright 2019 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 "third_party/blink/public/common/messaging/message_port_descriptor_mojom_traits.h"
#include "mojo/public/cpp/base/unguessable_token_mojom_traits.h"
namespace mojo {
// static
bool StructTraits<blink::mojom::MessagePortDescriptorDataView,
blink::MessagePortDescriptor>::
Read(blink::mojom::MessagePortDescriptorDataView data,
blink::MessagePortDescriptor* output) {
mojo::ScopedMessagePipeHandle handle = data.TakePipeHandle();
uint64_t sequence_number = data.sequence_number();
base::UnguessableToken id;
if (!data.ReadId(&id))
return false;
output->InitializeFromSerializedValues(std::move(handle), id,
sequence_number);
return true;
}
// static
mojo::ScopedMessagePipeHandle StructTraits<
blink::mojom::MessagePortDescriptorDataView,
blink::MessagePortDescriptor>::pipe_handle(blink::MessagePortDescriptor&
input) {
return input.TakeHandleForSerialization();
}
// static
base::UnguessableToken StructTraits<
blink::mojom::MessagePortDescriptorDataView,
blink::MessagePortDescriptor>::id(blink::MessagePortDescriptor& input) {
return input.TakeIdForSerialization();
}
// static
uint64_t StructTraits<blink::mojom::MessagePortDescriptorDataView,
blink::MessagePortDescriptor>::
sequence_number(blink::MessagePortDescriptor& input) {
return input.TakeSequenceNumberForSerialization();
}
} // namespace mojo