#ifndef SERVICES_NETWORK_PUBLIC_MOJOM_HOST_RESOLVER_MOJOM_SHARED_H_
#define SERVICES_NETWORK_PUBLIC_MOJOM_HOST_RESOLVER_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 "services/network/public/mojom/host_resolver.mojom-shared-internal.h"
#include "mojo/public/mojom/base/time.mojom-shared.h"
#include "services/network/public/mojom/address_list.mojom-shared.h"
#include "services/network/public/mojom/host_resolver_endpoint_result.mojom-shared.h"
#include "services/network/public/mojom/ip_address.mojom-shared.h"
#include "services/network/public/mojom/ip_endpoint.mojom-shared.h"
#include "services/network/public/mojom/network_anonymization_key.mojom-shared.h"
#include "services/network/public/mojom/network_param.mojom-shared.h"
#include "services/network/public/mojom/request_priority.mojom-shared.h"
#include "url/mojom/scheme_host_port.mojom-shared.h"
#include "mojo/public/cpp/bindings/lib/interface_serialization.h"
#include "mojo/public/cpp/system/data_pipe.h"
namespace network::mojom {
class DnsOverHttpsServerConfigDataView;
class DnsOverHttpsConfigDataView;
class DnsConfigOverridesDataView;
class ResolveHostParametersDataView;
class HostResolverHostDataView;
}
namespace mojo {
namespace internal {
template <>
struct MojomTypeTraits<::network::mojom::DnsOverHttpsServerConfigDataView> { … };
template <>
struct MojomTypeTraits<::network::mojom::DnsOverHttpsConfigDataView> { … };
template <>
struct MojomTypeTraits<::network::mojom::DnsConfigOverridesDataView> { … };
template <>
struct MojomTypeTraits<::network::mojom::ResolveHostParametersDataView> { … };
template <>
struct MojomTypeTraits<::network::mojom::HostResolverHostDataView> { … };
}
}
namespace network::mojom {
enum class OptionalSecureDnsMode : int32_t { … };
std::ostream& operator<<(std::ostream& os, OptionalSecureDnsMode value);
inline bool IsKnownEnumValue(OptionalSecureDnsMode value) { … }
enum class SecureDnsMode : int32_t { … };
std::ostream& operator<<(std::ostream& os, SecureDnsMode value);
inline bool IsKnownEnumValue(SecureDnsMode value) { … }
enum class SecureDnsPolicy : int32_t { … };
std::ostream& operator<<(std::ostream& os, SecureDnsPolicy value);
inline bool IsKnownEnumValue(SecureDnsPolicy value) { … }
enum class DnsQueryType : int32_t { … };
std::ostream& operator<<(std::ostream& os, DnsQueryType value);
inline bool IsKnownEnumValue(DnsQueryType value) { … }
enum class DnsConfigOverrides_Tristate : int32_t { … };
std::ostream& operator<<(std::ostream& os, DnsConfigOverrides_Tristate value);
inline bool IsKnownEnumValue(DnsConfigOverrides_Tristate value) { … }
enum class ResolveHostParameters_Source : int32_t { … };
std::ostream& operator<<(std::ostream& os, ResolveHostParameters_Source value);
inline bool IsKnownEnumValue(ResolveHostParameters_Source value) { … }
enum class ResolveHostParameters_CacheUsage : int32_t { … };
std::ostream& operator<<(std::ostream& os, ResolveHostParameters_CacheUsage value);
inline bool IsKnownEnumValue(ResolveHostParameters_CacheUsage value) { … }
enum class ResolveHostParameters_Purpose : int32_t { … };
std::ostream& operator<<(std::ostream& os, ResolveHostParameters_Purpose value);
inline bool IsKnownEnumValue(ResolveHostParameters_Purpose value) { … }
enum class MdnsListenClient_UpdateType : int32_t { … };
std::ostream& operator<<(std::ostream& os, MdnsListenClient_UpdateType value);
inline bool IsKnownEnumValue(MdnsListenClient_UpdateType value) { … }
class ResolveHostHandleInterfaceBase { … };
ResolveHostHandlePtrDataView;
ResolveHostHandleRequestDataView;
ResolveHostHandleAssociatedPtrInfoDataView;
ResolveHostHandleAssociatedRequestDataView;
class ResolveHostClientInterfaceBase { … };
ResolveHostClientPtrDataView;
ResolveHostClientRequestDataView;
ResolveHostClientAssociatedPtrInfoDataView;
ResolveHostClientAssociatedRequestDataView;
class MdnsListenClientInterfaceBase { … };
MdnsListenClientPtrDataView;
MdnsListenClientRequestDataView;
MdnsListenClientAssociatedPtrInfoDataView;
MdnsListenClientAssociatedRequestDataView;
class HostResolverInterfaceBase { … };
HostResolverPtrDataView;
HostResolverRequestDataView;
HostResolverAssociatedPtrInfoDataView;
HostResolverAssociatedRequestDataView;
class DnsConfigChangeManagerClientInterfaceBase { … };
DnsConfigChangeManagerClientPtrDataView;
DnsConfigChangeManagerClientRequestDataView;
DnsConfigChangeManagerClientAssociatedPtrInfoDataView;
DnsConfigChangeManagerClientAssociatedRequestDataView;
class DnsConfigChangeManagerInterfaceBase { … };
DnsConfigChangeManagerPtrDataView;
DnsConfigChangeManagerRequestDataView;
DnsConfigChangeManagerAssociatedPtrInfoDataView;
DnsConfigChangeManagerAssociatedRequestDataView;
class DnsOverHttpsServerConfigDataView { … };
class DnsOverHttpsConfigDataView { … };
class DnsConfigOverridesDataView { … };
class ResolveHostParametersDataView { … };
class HostResolverHostDataView { … };
}
namespace std {
template <>
struct hash<::network::mojom::OptionalSecureDnsMode>
: public mojo::internal::EnumHashImpl<::network::mojom::OptionalSecureDnsMode> { … };
template <>
struct hash<::network::mojom::SecureDnsMode>
: public mojo::internal::EnumHashImpl<::network::mojom::SecureDnsMode> { … };
template <>
struct hash<::network::mojom::SecureDnsPolicy>
: public mojo::internal::EnumHashImpl<::network::mojom::SecureDnsPolicy> { … };
template <>
struct hash<::network::mojom::DnsQueryType>
: public mojo::internal::EnumHashImpl<::network::mojom::DnsQueryType> { … };
template <>
struct hash<::network::mojom::DnsConfigOverrides_Tristate>
: public mojo::internal::EnumHashImpl<::network::mojom::DnsConfigOverrides_Tristate> { … };
template <>
struct hash<::network::mojom::ResolveHostParameters_Source>
: public mojo::internal::EnumHashImpl<::network::mojom::ResolveHostParameters_Source> { … };
template <>
struct hash<::network::mojom::ResolveHostParameters_CacheUsage>
: public mojo::internal::EnumHashImpl<::network::mojom::ResolveHostParameters_CacheUsage> { … };
template <>
struct hash<::network::mojom::ResolveHostParameters_Purpose>
: public mojo::internal::EnumHashImpl<::network::mojom::ResolveHostParameters_Purpose> { … };
template <>
struct hash<::network::mojom::MdnsListenClient_UpdateType>
: public mojo::internal::EnumHashImpl<::network::mojom::MdnsListenClient_UpdateType> { … };
}
namespace mojo {
namespace internal {
Serializer< ::network::mojom::OptionalSecureDnsMode, MaybeConstUserType>;
}
namespace internal {
Serializer< ::network::mojom::SecureDnsMode, MaybeConstUserType>;
}
namespace internal {
Serializer< ::network::mojom::SecureDnsPolicy, MaybeConstUserType>;
}
namespace internal {
Serializer< ::network::mojom::DnsQueryType, MaybeConstUserType>;
}
namespace internal {
Serializer< ::network::mojom::DnsConfigOverrides_Tristate, MaybeConstUserType>;
}
namespace internal {
Serializer< ::network::mojom::ResolveHostParameters_Source, MaybeConstUserType>;
}
namespace internal {
Serializer< ::network::mojom::ResolveHostParameters_CacheUsage, MaybeConstUserType>;
}
namespace internal {
Serializer< ::network::mojom::ResolveHostParameters_Purpose, MaybeConstUserType>;
}
namespace internal {
Serializer< ::network::mojom::MdnsListenClient_UpdateType, MaybeConstUserType>;
}
namespace internal {
Serializer< ::network::mojom::DnsOverHttpsServerConfigDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::network::mojom::DnsOverHttpsConfigDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::network::mojom::DnsConfigOverridesDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::network::mojom::ResolveHostParametersDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::network::mojom::HostResolverHostDataView, MaybeConstUserType>;
}
}
namespace network::mojom {
inline void DnsOverHttpsServerConfigDataView::GetServerTemplateDataView(
mojo::StringDataView* output) { … }
inline void DnsOverHttpsServerConfigDataView::GetEndpointsDataView(
mojo::ArrayDataView<mojo::ArrayDataView<::network::mojom::IPAddressDataView>>* output) { … }
inline void DnsOverHttpsConfigDataView::GetServersDataView(
mojo::ArrayDataView<DnsOverHttpsServerConfigDataView>* output) { … }
inline void DnsConfigOverridesDataView::GetNameserversDataView(
mojo::ArrayDataView<::network::mojom::IPEndPointDataView>* output) { … }
inline void DnsConfigOverridesDataView::GetSearchDataView(
mojo::ArrayDataView<mojo::StringDataView>* output) { … }
inline void DnsConfigOverridesDataView::GetFallbackPeriodDataView(
::mojo_base::mojom::TimeDeltaDataView* output) { … }
inline void DnsConfigOverridesDataView::GetDnsOverHttpsConfigDataView(
DnsOverHttpsConfigDataView* output) { … }
inline void HostResolverHostDataView::GetSchemeHostPortDataView(
::url::mojom::SchemeHostPortDataView* output) const { … }
inline void HostResolverHostDataView::GetHostPortPairDataView(
::network::mojom::HostPortPairDataView* output) const { … }
}
namespace perfetto {
template <>
struct TraceFormatTraits<::network::mojom::OptionalSecureDnsMode> { … };
}
namespace perfetto {
template <>
struct TraceFormatTraits<::network::mojom::SecureDnsMode> { … };
}
namespace perfetto {
template <>
struct TraceFormatTraits<::network::mojom::SecureDnsPolicy> { … };
}
namespace perfetto {
template <>
struct TraceFormatTraits<::network::mojom::DnsQueryType> { … };
}
namespace perfetto {
template <>
struct TraceFormatTraits<::network::mojom::DnsConfigOverrides_Tristate> { … };
}
namespace perfetto {
template <>
struct TraceFormatTraits<::network::mojom::ResolveHostParameters_Source> { … };
}
namespace perfetto {
template <>
struct TraceFormatTraits<::network::mojom::ResolveHostParameters_CacheUsage> { … };
}
namespace perfetto {
template <>
struct TraceFormatTraits<::network::mojom::ResolveHostParameters_Purpose> { … };
}
namespace perfetto {
template <>
struct TraceFormatTraits<::network::mojom::MdnsListenClient_UpdateType> { … };
}
#endif