#ifndef COMPONENTS_MEDIA_ROUTER_COMMON_MOJOM_MEDIA_ROUTER_MOJOM_SHARED_H_
#define COMPONENTS_MEDIA_ROUTER_COMMON_MOJOM_MEDIA_ROUTER_MOJOM_SHARED_H_
#include <stdint.h>
#include <functional>
#include <iosfwd>
#include <type_traits>
#include <utility>
#include "mojo/public/cpp/bindings/array_data_view.h"
#include "mojo/public/cpp/bindings/enum_traits.h"
#include "mojo/public/cpp/bindings/interface_data_view.h"
#include "mojo/public/cpp/bindings/lib/bindings_internal.h"
#include "mojo/public/cpp/bindings/lib/serialization.h"
#include "mojo/public/cpp/bindings/map_data_view.h"
#include "mojo/public/cpp/bindings/string_data_view.h"
#include "third_party/perfetto/include/perfetto/tracing/traced_value_forward.h"
#include "components/media_router/common/mojom/media_router.mojom-shared-internal.h"
#include "components/media_router/common/mojom/logger.mojom-shared.h"
#include "components/media_router/common/mojom/debugger.mojom-shared.h"
#include "components/media_router/common/mojom/media_controller.mojom-shared.h"
#include "components/media_router/common/mojom/media_route_provider_id.mojom-shared.h"
#include "components/media_router/common/mojom/media_status.mojom-shared.h"
#include "components/media_router/common/mojom/route_request_result_code.mojom-shared.h"
#include "mojo/public/mojom/base/time.mojom-shared.h"
#include "mojo/public/mojom/base/values.mojom-shared.h"
#include "services/network/public/mojom/ip_address.mojom-shared.h"
#include "services/network/public/mojom/ip_endpoint.mojom-shared.h"
#include "third_party/blink/public/mojom/presentation/presentation.mojom-shared.h"
#include "url/mojom/origin.mojom-shared.h"
#include "url/mojom/url.mojom-shared.h"
#include "mojo/public/cpp/bindings/lib/interface_serialization.h"
#include "mojo/public/cpp/system/data_pipe.h"
namespace media_router::mojom {
class MediaSinkDataView;
class DialMediaSinkDataView;
class CastMediaSinkDataView;
class MediaRouteDataView;
class IssueDataView;
class RouteMessageDataView;
class RoutePresentationConnectionDataView;
class CastSessionStateDataView;
class CastProviderStateDataView;
class MediaSinkExtraDataDataView;
class ProviderStateDataView;
}
namespace mojo {
namespace internal {
template <>
struct MojomTypeTraits<::media_router::mojom::MediaSinkDataView> { … };
template <>
struct MojomTypeTraits<::media_router::mojom::DialMediaSinkDataView> { … };
template <>
struct MojomTypeTraits<::media_router::mojom::CastMediaSinkDataView> { … };
template <>
struct MojomTypeTraits<::media_router::mojom::MediaRouteDataView> { … };
template <>
struct MojomTypeTraits<::media_router::mojom::IssueDataView> { … };
template <>
struct MojomTypeTraits<::media_router::mojom::RouteMessageDataView> { … };
template <>
struct MojomTypeTraits<::media_router::mojom::RoutePresentationConnectionDataView> { … };
template <>
struct MojomTypeTraits<::media_router::mojom::CastSessionStateDataView> { … };
template <>
struct MojomTypeTraits<::media_router::mojom::CastProviderStateDataView> { … };
template <>
struct MojomTypeTraits<::media_router::mojom::MediaSinkExtraDataDataView> { … };
template <>
struct MojomTypeTraits<::media_router::mojom::ProviderStateDataView> { … };
}
}
namespace media_router::mojom {
enum class SinkIconType : int32_t { … };
std::ostream& operator<<(std::ostream& os, SinkIconType value);
inline bool IsKnownEnumValue(SinkIconType value) { … }
enum class RouteControllerType : int32_t { … };
std::ostream& operator<<(std::ostream& os, RouteControllerType value);
inline bool IsKnownEnumValue(RouteControllerType value) { … }
enum class Issue_Severity : int32_t { … };
std::ostream& operator<<(std::ostream& os, Issue_Severity value);
inline bool IsKnownEnumValue(Issue_Severity value) { … }
enum class RouteMessage_Type : int32_t { … };
std::ostream& operator<<(std::ostream& os, RouteMessage_Type value);
inline bool IsKnownEnumValue(RouteMessage_Type value) { … }
class MediaRouteProviderInterfaceBase { … };
MediaRouteProviderPtrDataView;
MediaRouteProviderRequestDataView;
MediaRouteProviderAssociatedPtrInfoDataView;
MediaRouteProviderAssociatedRequestDataView;
class MediaRouterInterfaceBase { … };
MediaRouterPtrDataView;
MediaRouterRequestDataView;
MediaRouterAssociatedPtrInfoDataView;
MediaRouterAssociatedRequestDataView;
class MediaSinkDataView { … };
class DialMediaSinkDataView { … };
class CastMediaSinkDataView { … };
class MediaRouteDataView { … };
class IssueDataView { … };
class RouteMessageDataView { … };
class RoutePresentationConnectionDataView { … };
class CastSessionStateDataView { … };
class CastProviderStateDataView { … };
class MediaSinkExtraDataDataView { … };
class ProviderStateDataView { … };
}
namespace std {
template <>
struct hash<::media_router::mojom::SinkIconType>
: public mojo::internal::EnumHashImpl<::media_router::mojom::SinkIconType> { … };
template <>
struct hash<::media_router::mojom::RouteControllerType>
: public mojo::internal::EnumHashImpl<::media_router::mojom::RouteControllerType> { … };
template <>
struct hash<::media_router::mojom::Issue_Severity>
: public mojo::internal::EnumHashImpl<::media_router::mojom::Issue_Severity> { … };
template <>
struct hash<::media_router::mojom::RouteMessage_Type>
: public mojo::internal::EnumHashImpl<::media_router::mojom::RouteMessage_Type> { … };
}
namespace mojo {
namespace internal {
Serializer< ::media_router::mojom::SinkIconType, MaybeConstUserType>;
}
namespace internal {
Serializer< ::media_router::mojom::RouteControllerType, MaybeConstUserType>;
}
namespace internal {
Serializer< ::media_router::mojom::Issue_Severity, MaybeConstUserType>;
}
namespace internal {
Serializer< ::media_router::mojom::RouteMessage_Type, MaybeConstUserType>;
}
namespace internal {
Serializer< ::media_router::mojom::MediaSinkDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::media_router::mojom::DialMediaSinkDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::media_router::mojom::CastMediaSinkDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::media_router::mojom::MediaRouteDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::media_router::mojom::IssueDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::media_router::mojom::RouteMessageDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::media_router::mojom::RoutePresentationConnectionDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::media_router::mojom::CastSessionStateDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::media_router::mojom::CastProviderStateDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::media_router::mojom::MediaSinkExtraDataDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::media_router::mojom::ProviderStateDataView, MaybeConstUserType>;
}
}
namespace media_router::mojom {
inline void MediaSinkDataView::GetSinkIdDataView(
mojo::StringDataView* output) { … }
inline void MediaSinkDataView::GetNameDataView(
mojo::StringDataView* output) { … }
inline void MediaSinkDataView::GetExtraDataDataView(
MediaSinkExtraDataDataView* output) { … }
inline void DialMediaSinkDataView::GetIpAddressDataView(
::network::mojom::IPAddressDataView* output) { … }
inline void DialMediaSinkDataView::GetModelNameDataView(
mojo::StringDataView* output) { … }
inline void DialMediaSinkDataView::GetAppUrlDataView(
::url::mojom::UrlDataView* output) { … }
inline void CastMediaSinkDataView::GetIpEndpointDataView(
::network::mojom::IPEndPointDataView* output) { … }
inline void CastMediaSinkDataView::GetModelNameDataView(
mojo::StringDataView* output) { … }
inline void MediaRouteDataView::GetMediaRouteIdDataView(
mojo::StringDataView* output) { … }
inline void MediaRouteDataView::GetPresentationIdDataView(
mojo::StringDataView* output) { … }
inline void MediaRouteDataView::GetMediaSourceDataView(
mojo::StringDataView* output) { … }
inline void MediaRouteDataView::GetMediaSinkIdDataView(
mojo::StringDataView* output) { … }
inline void MediaRouteDataView::GetMediaSinkNameDataView(
mojo::StringDataView* output) { … }
inline void MediaRouteDataView::GetDescriptionDataView(
mojo::StringDataView* output) { … }
inline void IssueDataView::GetRouteIdDataView(
mojo::StringDataView* output) { … }
inline void IssueDataView::GetSinkIdDataView(
mojo::StringDataView* output) { … }
inline void IssueDataView::GetTitleDataView(
mojo::StringDataView* output) { … }
inline void IssueDataView::GetMessageDataView(
mojo::StringDataView* output) { … }
inline void RouteMessageDataView::GetMessageDataView(
mojo::StringDataView* output) { … }
inline void RouteMessageDataView::GetDataDataView(
mojo::ArrayDataView<uint8_t>* output) { … }
inline void CastSessionStateDataView::GetSinkIdDataView(
mojo::StringDataView* output) { … }
inline void CastSessionStateDataView::GetAppIdDataView(
mojo::StringDataView* output) { … }
inline void CastSessionStateDataView::GetSessionIdDataView(
mojo::StringDataView* output) { … }
inline void CastSessionStateDataView::GetRouteDescriptionDataView(
mojo::StringDataView* output) { … }
inline void CastProviderStateDataView::GetSessionStateDataView(
mojo::ArrayDataView<CastSessionStateDataView>* output) { … }
inline void MediaSinkExtraDataDataView::GetDialMediaSinkDataView(
DialMediaSinkDataView* output) const { … }
inline void MediaSinkExtraDataDataView::GetCastMediaSinkDataView(
CastMediaSinkDataView* output) const { … }
inline void ProviderStateDataView::GetCastProviderStateDataView(
CastProviderStateDataView* output) const { … }
}
namespace perfetto {
template <>
struct TraceFormatTraits<::media_router::mojom::SinkIconType> { … };
}
namespace perfetto {
template <>
struct TraceFormatTraits<::media_router::mojom::RouteControllerType> { … };
}
namespace perfetto {
template <>
struct TraceFormatTraits<::media_router::mojom::Issue_Severity> { … };
}
namespace perfetto {
template <>
struct TraceFormatTraits<::media_router::mojom::RouteMessage_Type> { … };
}
#endif