// 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. #ifndef IPC_MESSAGE_VIEW_H_ #define IPC_MESSAGE_VIEW_H_ #include #include "base/component_export.h" #include "base/containers/span.h" #include "ipc/ipc_message.h" #include "mojo/public/interfaces/bindings/native_struct.mojom-forward.h" #include "third_party/abseil-cpp/absl/types/optional.h" namespace IPC { class COMPONENT_EXPORT(IPC_MOJOM) MessageView { public: MessageView(); MessageView( base::span bytes, absl::optional> handles); MessageView(MessageView&&); MessageView(const MessageView&) = delete; MessageView& operator=(const MessageView&) = delete; ~MessageView(); MessageView& operator=(MessageView&&); base::span bytes() const { return bytes_; } absl::optional> TakeHandles(); private: base::span bytes_; absl::optional> handles_; }; } // namespace IPC #endif // IPC_MESSAGE_VIEW_H_