chromium/out/Default/gen/services/network/public/mojom/host_resolver.mojom-shared.h

// services/network/public/mojom/host_resolver.mojom-shared.h is auto generated by mojom_bindings_generator.py, do not edit

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

#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;


}  // network::mojom

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 internal
}  // namespace mojo


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) {}
// Interface base classes. They are used for type safety check.
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 {};



}  // network::mojom

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 std

namespace mojo {


namespace internal {

Serializer< ::network::mojom::OptionalSecureDnsMode, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::network::mojom::SecureDnsMode, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::network::mojom::SecureDnsPolicy, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::network::mojom::DnsQueryType, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::network::mojom::DnsConfigOverrides_Tristate, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::network::mojom::ResolveHostParameters_Source, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::network::mojom::ResolveHostParameters_CacheUsage, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::network::mojom::ResolveHostParameters_Purpose, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::network::mojom::MdnsListenClient_UpdateType, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::network::mojom::DnsOverHttpsServerConfigDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::network::mojom::DnsOverHttpsConfigDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::network::mojom::DnsConfigOverridesDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::network::mojom::ResolveHostParametersDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::network::mojom::HostResolverHostDataView, MaybeConstUserType>;

}  // namespace internal

}  // namespace mojo


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 {}


}  // network::mojom

// Declare TraceFormatTraits for enums, which should be defined in ::perfetto
// namespace.

namespace perfetto {

template <>
struct  TraceFormatTraits<::network::mojom::OptionalSecureDnsMode> {};

} // namespace perfetto

namespace perfetto {

template <>
struct  TraceFormatTraits<::network::mojom::SecureDnsMode> {};

} // namespace perfetto

namespace perfetto {

template <>
struct  TraceFormatTraits<::network::mojom::SecureDnsPolicy> {};

} // namespace perfetto

namespace perfetto {

template <>
struct  TraceFormatTraits<::network::mojom::DnsQueryType> {};

} // namespace perfetto

namespace perfetto {

template <>
struct  TraceFormatTraits<::network::mojom::DnsConfigOverrides_Tristate> {};

} // namespace perfetto

namespace perfetto {

template <>
struct  TraceFormatTraits<::network::mojom::ResolveHostParameters_Source> {};

} // namespace perfetto

namespace perfetto {

template <>
struct  TraceFormatTraits<::network::mojom::ResolveHostParameters_CacheUsage> {};

} // namespace perfetto

namespace perfetto {

template <>
struct  TraceFormatTraits<::network::mojom::ResolveHostParameters_Purpose> {};

} // namespace perfetto

namespace perfetto {

template <>
struct  TraceFormatTraits<::network::mojom::MdnsListenClient_UpdateType> {};

} // namespace perfetto

#endif  // SERVICES_NETWORK_PUBLIC_MOJOM_HOST_RESOLVER_MOJOM_SHARED_H_