chromium/components/cast/message_port/cast_core/message_port_core.h

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_CAST_MESSAGE_PORT_CAST_CORE_MESSAGE_PORT_CORE_H_
#define COMPONENTS_CAST_MESSAGE_PORT_CAST_CORE_MESSAGE_PORT_CORE_H_

#include <memory>
#include <queue>
#include <string>
#include <string_view>

#include "base/memory/raw_ptr.h"
#include "base/sequence_checker.h"
#include "components/cast/message_port/cast_core/message_connector.h"
#include "components/cast/message_port/message_port.h"

namespace cast_api_bindings {

// A serialized version of the port used for transfer.
struct MessagePortDescriptor {};

class MessagePortCore;

// Message sent over a MessagePortCore, containing data and optional
// MessagePortCore(s).
struct Message {};

// MessagePortCore used for transferring Message between a
// Receiver and another MessageConnector. Overrides of MessagePort and
// MessageConnector functions are run on a sequence provided by the OnSequence
// methods.
class MessagePortCore : public MessagePort, public MessageConnector {};

}  // namespace cast_api_bindings

#endif  // COMPONENTS_CAST_MESSAGE_PORT_CAST_CORE_MESSAGE_PORT_CORE_H_