Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(256)

Side by Side Diff: net/dns/mojo_host_struct_traits.cc

Issue 2083463002: Replace //net TypeConverters with StructTraits. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@type-converter-cleanup--gurl
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "net/dns/mojo_host_struct_traits.h"
6
7 #include <utility>
8
9 #include "net/base/address_list.h"
10
11 namespace mojo {
12
13 // static
14 bool EnumTraits<net::interfaces::AddressFamily, net::AddressFamily>::FromMojom(
15 net::interfaces::AddressFamily address_family,
16 net::AddressFamily* out) {
17 using net::interfaces::AddressFamily;
18 switch (address_family) {
19 case AddressFamily::UNSPECIFIED:
20 *out = net::ADDRESS_FAMILY_UNSPECIFIED;
21 return true;
22 case AddressFamily::IPV4:
23 *out = net::ADDRESS_FAMILY_IPV4;
24 return true;
25 case AddressFamily::IPV6:
26 *out = net::ADDRESS_FAMILY_IPV6;
27 return true;
28 }
29 return false;
30 }
31
32 // static
33 net::interfaces::AddressFamily
34 EnumTraits<net::interfaces::AddressFamily, net::AddressFamily>::ToMojom(
35 net::AddressFamily address_family) {
36 using net::interfaces::AddressFamily;
37 switch (address_family) {
38 case net::ADDRESS_FAMILY_UNSPECIFIED:
39 return AddressFamily::UNSPECIFIED;
40 case net::ADDRESS_FAMILY_IPV4:
41 return AddressFamily::IPV4;
42 case net::ADDRESS_FAMILY_IPV6:
43 return AddressFamily::IPV6;
44 }
45 NOTREACHED();
46 return AddressFamily::UNSPECIFIED;
47 }
48
49 // static
50 bool StructTraits<net::interfaces::HostResolverRequestInfo,
51 std::unique_ptr<net::HostResolver::RequestInfo>>::
52 Read(net::interfaces::HostResolverRequestInfoDataView data,
53 std::unique_ptr<net::HostResolver::RequestInfo>* out) {
54 base::StringPiece host;
55 if (!data.ReadHost(&host))
56 return false;
57
58 net::AddressFamily address_family;
59 if (!data.ReadAddressFamily(&address_family))
60 return false;
61
62 *out = base::MakeUnique<net::HostResolver::RequestInfo>(
63 net::HostPortPair(host.as_string(), data.port()));
64 net::HostResolver::RequestInfo& request = **out;
65 request.set_address_family(address_family);
66 request.set_is_my_ip_address(data.is_my_ip_address());
67 return true;
68 }
dcheng 2016/06/27 03:50:45 Nit: newline
Sam McNally 2016/06/29 01:42:07 Done.
69 // static
70 bool StructTraits<net::interfaces::IPEndPoint, net::IPEndPoint>::Read(
71 net::interfaces::IPEndPointDataView data,
72 net::IPEndPoint* out) {
73 std::vector<uint8_t> bytes;
74 if (!data.ReadAddress(&bytes))
75 return false;
76
77 *out = net::IPEndPoint(net::IPAddress(bytes), data.port());
78 return true;
79 }
80
81 // static
82 bool StructTraits<net::interfaces::AddressList, net::AddressList>::Read(
83 net::interfaces::AddressListDataView data,
84 net::AddressList* out) {
85 std::vector<net::IPEndPoint> endpoints;
86 if (!data.ReadAddresses(&endpoints))
87 return false;
88
89 out->insert(out->begin(), endpoints.cbegin(), endpoints.cend());
90 return true;
91 }
92
93 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698