1 // Copyright (c) 2012 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.
5 #include "chromeos/network/network_ip_config.h"
7 #include "base/logging.h"
12 #define ENUM_CASE(x) case x: return std::string(#x)
13 std::string
IPConfigTypeAsString(IPConfigType type
) {
15 ENUM_CASE(IPCONFIG_TYPE_UNKNOWN
);
16 ENUM_CASE(IPCONFIG_TYPE_IPV4
);
17 ENUM_CASE(IPCONFIG_TYPE_IPV6
);
18 ENUM_CASE(IPCONFIG_TYPE_DHCP
);
19 ENUM_CASE(IPCONFIG_TYPE_BOOTP
);
20 ENUM_CASE(IPCONFIG_TYPE_ZEROCONF
);
21 ENUM_CASE(IPCONFIG_TYPE_DHCP6
);
22 ENUM_CASE(IPCONFIG_TYPE_PPP
);
24 NOTREACHED() << "Unhandled enum value " << type
;
30 NetworkIPConfig::NetworkIPConfig(
31 const std::string
& device_path
, IPConfigType type
,
32 const std::string
& address
, const std::string
& netmask
,
33 const std::string
& gateway
, const std::string
& name_servers
)
34 : device_path(device_path
),
39 name_servers(name_servers
) {
42 NetworkIPConfig::~NetworkIPConfig() {}
44 std::string
NetworkIPConfig::ToString() const {
45 return std::string("path: ") + device_path
46 + " type: " + IPConfigTypeAsString(type
)
47 + " address: " + address
48 + " netmask: " + netmask
49 + " gateway: " + gateway
50 + " name_servers: " + name_servers
;
53 } // namespace chromeos