Commit 648cc30c authored by Helen Li's avatar Helen Li Committed by Commit Bot

Make AddressFamily into its own mojom file

AddressFamily is defined in host resolver mojom file. This CL makes it into
its own mojom file.

Bug: 721401
Change-Id: I29585ea8c35a63d543c4280b43d7f3fc70073eef
Reviewed-on: https://chromium-review.googlesource.com/826006Reviewed-by: default avatarRandy Smith <rdsmith@chromium.org>
Reviewed-by: default avatarTom Sepez <tsepez@chromium.org>
Commit-Queue: Helen Li <xunjieli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524270}
parent 54e80528
......@@ -8,46 +8,11 @@
#include "base/memory/ptr_util.h"
#include "net/base/address_list.h"
#include "net/interfaces/address_family_traits.h"
#include "net/interfaces/ip_endpoint_struct_traits.h"
namespace mojo {
// static
bool EnumTraits<net::interfaces::AddressFamily, net::AddressFamily>::FromMojom(
net::interfaces::AddressFamily address_family,
net::AddressFamily* out) {
using net::interfaces::AddressFamily;
switch (address_family) {
case AddressFamily::UNSPECIFIED:
*out = net::ADDRESS_FAMILY_UNSPECIFIED;
return true;
case AddressFamily::IPV4:
*out = net::ADDRESS_FAMILY_IPV4;
return true;
case AddressFamily::IPV6:
*out = net::ADDRESS_FAMILY_IPV6;
return true;
}
return false;
}
// static
net::interfaces::AddressFamily
EnumTraits<net::interfaces::AddressFamily, net::AddressFamily>::ToMojom(
net::AddressFamily address_family) {
using net::interfaces::AddressFamily;
switch (address_family) {
case net::ADDRESS_FAMILY_UNSPECIFIED:
return AddressFamily::UNSPECIFIED;
case net::ADDRESS_FAMILY_IPV4:
return AddressFamily::IPV4;
case net::ADDRESS_FAMILY_IPV6:
return AddressFamily::IPV6;
}
NOTREACHED();
return AddressFamily::UNSPECIFIED;
}
// static
bool StructTraits<net::interfaces::HostResolverRequestInfoDataView,
std::unique_ptr<net::HostResolver::RequestInfo>>::
......
......@@ -9,18 +9,11 @@
#include "mojo/public/cpp/bindings/enum_traits.h"
#include "mojo/public/cpp/bindings/struct_traits.h"
#include "net/dns/host_resolver.h"
#include "net/interfaces/address_family.mojom.h"
#include "net/interfaces/host_resolver_service.mojom.h"
namespace mojo {
template <>
struct EnumTraits<net::interfaces::AddressFamily, net::AddressFamily> {
static net::interfaces::AddressFamily ToMojom(
net::AddressFamily address_family);
static bool FromMojom(net::interfaces::AddressFamily address_family,
net::AddressFamily* out);
};
template <>
struct StructTraits<net::interfaces::HostResolverRequestInfoDataView,
std::unique_ptr<net::HostResolver::RequestInfo>> {
......
......@@ -6,6 +6,7 @@ import("//mojo/public/tools/bindings/mojom.gni")
mojom("interfaces") {
sources = [
"address_family.mojom",
"host_resolver_service.mojom",
"ip_address.mojom",
"ip_endpoint.mojom",
......
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module net.interfaces;
// Mirror of net::AddressFamily.
enum AddressFamily {
UNSPECIFIED,
IPV4,
IPV6,
};
# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
mojom = "//net/interfaces/address_family.mojom"
public_headers = [ "//net/base/address_family.h" ]
traits_headers = [ "//net/interfaces/address_family_traits.h" ]
sources = [
"//net/interfaces/address_family_traits.cc",
]
type_mappings = [ "net.interfaces.AddressFamily=net::AddressFamily" ]
public_deps = [
"//net",
]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "net/interfaces/address_family_traits.h"
namespace mojo {
// static
bool EnumTraits<net::interfaces::AddressFamily, net::AddressFamily>::FromMojom(
net::interfaces::AddressFamily address_family,
net::AddressFamily* out) {
using net::interfaces::AddressFamily;
switch (address_family) {
case AddressFamily::UNSPECIFIED:
*out = net::ADDRESS_FAMILY_UNSPECIFIED;
return true;
case AddressFamily::IPV4:
*out = net::ADDRESS_FAMILY_IPV4;
return true;
case AddressFamily::IPV6:
*out = net::ADDRESS_FAMILY_IPV6;
return true;
}
return false;
}
// static
net::interfaces::AddressFamily
EnumTraits<net::interfaces::AddressFamily, net::AddressFamily>::ToMojom(
net::AddressFamily address_family) {
using net::interfaces::AddressFamily;
switch (address_family) {
case net::ADDRESS_FAMILY_UNSPECIFIED:
return AddressFamily::UNSPECIFIED;
case net::ADDRESS_FAMILY_IPV4:
return AddressFamily::IPV4;
case net::ADDRESS_FAMILY_IPV6:
return AddressFamily::IPV6;
}
NOTREACHED();
return AddressFamily::UNSPECIFIED;
}
} // namespace mojo
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef NET_INTERFACES_ADDRESS_FAMILY_TRAITS_H_
#define NET_INTERFACES_ADDRESS_FAMILY_TRAITS_H_
#include "mojo/public/cpp/bindings/enum_traits.h"
#include "net/interfaces/address_family.mojom.h"
namespace mojo {
template <>
struct EnumTraits<net::interfaces::AddressFamily, net::AddressFamily> {
static net::interfaces::AddressFamily ToMojom(
net::AddressFamily address_family);
static bool FromMojom(net::interfaces::AddressFamily address_family,
net::AddressFamily* out);
};
} // namespace mojo
#endif // NET_INTERFACES_ADDRESS_FAMILY_TRAITS_H_
......@@ -11,7 +11,6 @@ sources = [
type_mappings = [
"net.interfaces.HostResolverRequestInfo=std::unique_ptr<net::HostResolver::RequestInfo>[move_only]",
"net.interfaces.AddressList=net::AddressList",
"net.interfaces.AddressFamily=net::AddressFamily",
]
public_deps = [
"//net",
......
......@@ -13,13 +13,7 @@
module net.interfaces;
import "net/interfaces/ip_endpoint.mojom";
// Mirror of net::AddressFamily.
enum AddressFamily {
UNSPECIFIED,
IPV4,
IPV6,
};
import "net/interfaces/address_family.mojom";
// Mirror of net::HostResolver::RequestInfo.
struct HostResolverRequestInfo {
......
......@@ -3,6 +3,7 @@
# found in the LICENSE file.
typemaps = [
"//net/interfaces/address_family.typemap",
"//net/interfaces/host_resolver.typemap",
"//net/interfaces/ip_address.typemap",
"//net/interfaces/ip_endpoint.typemap",
......
......@@ -7,6 +7,7 @@
// TODO(amistry): Resolve the conflict between these two sets of definitions.
module proxy_resolver.mojom;
import "net/interfaces/address_family.mojom";
import "net/interfaces/host_resolver_service.mojom";
import "url/mojo/url.mojom";
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment