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

Side by Side Diff: net/proxy/mojo_proxy_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, 6 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/proxy/mojo_proxy_struct_traits.h"
6
7 #include "base/logging.h"
8 #include "net/base/host_port_pair.h"
9 #include "net/proxy/proxy_info.h"
10 #include "net/proxy/proxy_server.h"
11
12 namespace mojo {
13
14 net::interfaces::ProxyScheme
15 EnumTraits<net::interfaces::ProxyScheme, net::ProxyServer::Scheme>::ToMojom(
16 net::ProxyServer::Scheme scheme) {
17 using net::ProxyServer;
18 switch (scheme) {
19 case ProxyServer::SCHEME_INVALID:
20 return net::interfaces::ProxyScheme::INVALID;
21 case ProxyServer::SCHEME_DIRECT:
22 return net::interfaces::ProxyScheme::DIRECT;
23 case ProxyServer::SCHEME_HTTP:
24 return net::interfaces::ProxyScheme::HTTP;
25 case ProxyServer::SCHEME_SOCKS4:
26 return net::interfaces::ProxyScheme::SOCKS4;
27 case ProxyServer::SCHEME_SOCKS5:
28 return net::interfaces::ProxyScheme::SOCKS5;
29 case ProxyServer::SCHEME_HTTPS:
30 return net::interfaces::ProxyScheme::HTTPS;
31 case ProxyServer::SCHEME_QUIC:
32 return net::interfaces::ProxyScheme::QUIC;
33 }
34 NOTREACHED();
35 return net::interfaces::ProxyScheme::INVALID;
36 }
37
38 bool EnumTraits<net::interfaces::ProxyScheme, net::ProxyServer::Scheme>::
39 FromMojom(net::interfaces::ProxyScheme scheme,
40 net::ProxyServer::Scheme* out) {
41 using net::ProxyServer;
42 switch (scheme) {
43 case net::interfaces::ProxyScheme::INVALID:
44 *out = ProxyServer::SCHEME_INVALID;
45 return true;
46 case net::interfaces::ProxyScheme::DIRECT:
47 *out = ProxyServer::SCHEME_DIRECT;
48 return true;
49 case net::interfaces::ProxyScheme::HTTP:
50 *out = ProxyServer::SCHEME_HTTP;
51 return true;
52 case net::interfaces::ProxyScheme::SOCKS4:
53 *out = ProxyServer::SCHEME_SOCKS4;
54 return true;
55 case net::interfaces::ProxyScheme::SOCKS5:
56 *out = ProxyServer::SCHEME_SOCKS5;
57 return true;
58 case net::interfaces::ProxyScheme::HTTPS:
59 *out = ProxyServer::SCHEME_HTTPS;
60 return true;
61 case net::interfaces::ProxyScheme::QUIC:
62 *out = ProxyServer::SCHEME_QUIC;
63 return true;
64 }
65 return false;
66 }
67
68 bool StructTraits<net::interfaces::ProxyServer, net::ProxyServer>::Read(
69 net::interfaces::ProxyServerDataView data,
70 net::ProxyServer* out) {
71 net::ProxyServer::Scheme scheme;
72 if (!data.ReadScheme(&scheme))
73 return false;
74
75 std::string host;
76 if (!data.ReadHost(&host))
77 return false;
78
79 *out = net::ProxyServer(scheme, net::HostPortPair(host, data.port()));
80 return true;
81 }
82
83 bool StructTraits<net::interfaces::ProxyInfo, net::ProxyInfo>::Read(
84 net::interfaces::ProxyInfoDataView data,
85 net::ProxyInfo* out) {
86 std::vector<net::ProxyServer> proxy_servers;
87 if (!data.ReadProxyServers(&proxy_servers))
88 return false;
89
90 net::ProxyList proxy_list;
91 for (const auto& server : proxy_servers)
92 proxy_list.AddProxyServer(server);
93
94 out->UseProxyList(proxy_list);
95 return true;
96 }
97
98 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698