#ifndef MEDIA_MOJO_MOJOM_REMOTING_MOJOM_H_
#define MEDIA_MOJO_MOJOM_REMOTING_MOJOM_H_
#include <stdint.h>
#include <limits>
#include <optional>
#include <type_traits>
#include <utility>
#include "base/types/cxx23_to_underlying.h"
#include "mojo/public/cpp/bindings/clone_traits.h"
#include "mojo/public/cpp/bindings/equals_traits.h"
#include "mojo/public/cpp/bindings/lib/serialization.h"
#include "mojo/public/cpp/bindings/struct_ptr.h"
#include "mojo/public/cpp/bindings/struct_traits.h"
#include "mojo/public/cpp/bindings/union_traits.h"
#include "third_party/perfetto/include/perfetto/tracing/traced_value_forward.h"
#include "media/mojo/mojom/remoting.mojom-features.h"
#include "media/mojo/mojom/remoting.mojom-shared.h"
#include "media/mojo/mojom/remoting.mojom-forward.h"
#include "media/mojo/mojom/media_types.mojom-forward.h"
#include "media/mojo/mojom/remoting_common.mojom-forward.h"
#include "ui/gfx/geometry/mojom/geometry.mojom.h"
#include <string>
#include <vector>
#include "mojo/public/cpp/bindings/lib/control_message_handler.h"
#include "mojo/public/cpp/bindings/lib/message_size_estimator.h"
#include "mojo/public/cpp/bindings/raw_ptr_impl_ref_traits.h"
namespace media::mojom {
class RemoterFactoryProxy;
template <typename ImplRefTraits>
class RemoterFactoryStub;
class RemoterFactoryRequestValidator;
class RemoterFactory
: public RemoterFactoryInterfaceBase { … };
class RemotingDataStreamSenderProxy;
template <typename ImplRefTraits>
class RemotingDataStreamSenderStub;
class RemotingDataStreamSenderRequestValidator;
class RemotingDataStreamSenderResponseValidator;
class RemotingDataStreamSender
: public RemotingDataStreamSenderInterfaceBase { … };
class RemoterProxy;
template <typename ImplRefTraits>
class RemoterStub;
class RemoterRequestValidator;
class RemoterResponseValidator;
class Remoter
: public RemoterInterfaceBase { … };
class RemotingSourceProxy;
template <typename ImplRefTraits>
class RemotingSourceStub;
class RemotingSourceRequestValidator;
class RemotingSource
: public RemotingSourceInterfaceBase { … };
class RemoteeProxy;
template <typename ImplRefTraits>
class RemoteeStub;
class RemoteeRequestValidator;
class Remotee
: public RemoteeInterfaceBase { … };
class RemotingSinkProxy;
template <typename ImplRefTraits>
class RemotingSinkStub;
class RemotingSinkRequestValidator;
class RemotingSink
: public RemotingSinkInterfaceBase { … };
class RemotingDataStreamReceiverProxy;
template <typename ImplRefTraits>
class RemotingDataStreamReceiverStub;
class RemotingDataStreamReceiverRequestValidator;
class RemotingDataStreamReceiver
: public RemotingDataStreamReceiverInterfaceBase { … };
class RemoterFactoryProxy
: public RemoterFactory { … };
class RemotingDataStreamSenderProxy
: public RemotingDataStreamSender { … };
class RemoterProxy
: public Remoter { … };
class RemotingSourceProxy
: public RemotingSource { … };
class RemoteeProxy
: public Remotee { … };
class RemotingSinkProxy
: public RemotingSink { … };
class RemotingDataStreamReceiverProxy
: public RemotingDataStreamReceiver { … };
class RemoterFactoryStubDispatch { … };
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<RemoterFactory>>
class RemoterFactoryStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
RemoterFactoryStub() = default;
~RemoterFactoryStub() override = default;
void set_sink(ImplPointerType sink) { … }
ImplPointerType& sink() { … }
bool Accept(mojo::Message* message) override { … }
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override { … }
private:
ImplPointerType sink_;
};
class RemotingDataStreamSenderStubDispatch { … };
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<RemotingDataStreamSender>>
class RemotingDataStreamSenderStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
RemotingDataStreamSenderStub() = default;
~RemotingDataStreamSenderStub() override = default;
void set_sink(ImplPointerType sink) { … }
ImplPointerType& sink() { … }
bool Accept(mojo::Message* message) override { … }
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override { … }
private:
ImplPointerType sink_;
};
class RemoterStubDispatch { … };
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<Remoter>>
class RemoterStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
RemoterStub() = default;
~RemoterStub() override = default;
void set_sink(ImplPointerType sink) { … }
ImplPointerType& sink() { … }
bool Accept(mojo::Message* message) override { … }
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override { … }
private:
ImplPointerType sink_;
};
class RemotingSourceStubDispatch { … };
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<RemotingSource>>
class RemotingSourceStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
RemotingSourceStub() = default;
~RemotingSourceStub() override = default;
void set_sink(ImplPointerType sink) { … }
ImplPointerType& sink() { … }
bool Accept(mojo::Message* message) override { … }
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override { … }
private:
ImplPointerType sink_;
};
class RemoteeStubDispatch { … };
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<Remotee>>
class RemoteeStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
RemoteeStub() = default;
~RemoteeStub() override = default;
void set_sink(ImplPointerType sink) { … }
ImplPointerType& sink() { … }
bool Accept(mojo::Message* message) override { … }
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override { … }
private:
ImplPointerType sink_;
};
class RemotingSinkStubDispatch { … };
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<RemotingSink>>
class RemotingSinkStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
RemotingSinkStub() = default;
~RemotingSinkStub() override = default;
void set_sink(ImplPointerType sink) { … }
ImplPointerType& sink() { … }
bool Accept(mojo::Message* message) override { … }
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override { … }
private:
ImplPointerType sink_;
};
class RemotingDataStreamReceiverStubDispatch { … };
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<RemotingDataStreamReceiver>>
class RemotingDataStreamReceiverStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
RemotingDataStreamReceiverStub() = default;
~RemotingDataStreamReceiverStub() override = default;
void set_sink(ImplPointerType sink) { … }
ImplPointerType& sink() { … }
bool Accept(mojo::Message* message) override { … }
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override { … }
private:
ImplPointerType sink_;
};
class RemoterFactoryRequestValidator : public mojo::MessageReceiver { … };
class RemotingDataStreamSenderRequestValidator : public mojo::MessageReceiver { … };
class RemoterRequestValidator : public mojo::MessageReceiver { … };
class RemotingSourceRequestValidator : public mojo::MessageReceiver { … };
class RemoteeRequestValidator : public mojo::MessageReceiver { … };
class RemotingSinkRequestValidator : public mojo::MessageReceiver { … };
class RemotingDataStreamReceiverRequestValidator : public mojo::MessageReceiver { … };
class RemotingDataStreamSenderResponseValidator : public mojo::MessageReceiver { … };
class RemoterResponseValidator : public mojo::MessageReceiver { … };
}
namespace mojo {
}
#endif