1*6777b538SAndroid Build Coastguard Worker // Copyright 2018 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef IPC_MESSAGE_MOJOM_TRAITS_H_ 6*6777b538SAndroid Build Coastguard Worker #define IPC_MESSAGE_MOJOM_TRAITS_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include <optional> 9*6777b538SAndroid Build Coastguard Worker #include <vector> 10*6777b538SAndroid Build Coastguard Worker 11*6777b538SAndroid Build Coastguard Worker #include "base/containers/span.h" 12*6777b538SAndroid Build Coastguard Worker #include "ipc/ipc.mojom-shared.h" 13*6777b538SAndroid Build Coastguard Worker #include "ipc/message_view.h" 14*6777b538SAndroid Build Coastguard Worker #include "mojo/public/cpp/bindings/struct_traits.h" 15*6777b538SAndroid Build Coastguard Worker #include "mojo/public/interfaces/bindings/native_struct.mojom.h" 16*6777b538SAndroid Build Coastguard Worker 17*6777b538SAndroid Build Coastguard Worker namespace mojo { 18*6777b538SAndroid Build Coastguard Worker 19*6777b538SAndroid Build Coastguard Worker template <> 20*6777b538SAndroid Build Coastguard Worker class StructTraits<IPC::mojom::MessageDataView, IPC::MessageView> { 21*6777b538SAndroid Build Coastguard Worker public: 22*6777b538SAndroid Build Coastguard Worker static base::span<const uint8_t> bytes(IPC::MessageView& view); 23*6777b538SAndroid Build Coastguard Worker static std::optional<std::vector<mojo::native::SerializedHandlePtr>> handles( 24*6777b538SAndroid Build Coastguard Worker IPC::MessageView& view); 25*6777b538SAndroid Build Coastguard Worker 26*6777b538SAndroid Build Coastguard Worker static bool Read(IPC::mojom::MessageDataView data, IPC::MessageView* out); 27*6777b538SAndroid Build Coastguard Worker }; 28*6777b538SAndroid Build Coastguard Worker 29*6777b538SAndroid Build Coastguard Worker } // namespace mojo 30*6777b538SAndroid Build Coastguard Worker 31*6777b538SAndroid Build Coastguard Worker #endif // IPC_MESSAGE_MOJOM_TRAITS_H_ 32