Chromium Code Reviews| Index: chrome/browser/local_discovery/device_description.cc |
| diff --git a/chrome/browser/local_discovery/device_description.cc b/chrome/browser/local_discovery/device_description.cc |
| index d2faed066544d1082ff9f8a6ed47ad6924906e76..827f6e6e282b1f354a8ab1ebe7296b710b439bf9 100644 |
| --- a/chrome/browser/local_discovery/device_description.cc |
| +++ b/chrome/browser/local_discovery/device_description.cc |
| @@ -15,66 +15,41 @@ namespace local_discovery { |
| namespace { |
| -DeviceDescription::ConnectionState |
| -ConnectionStateFromString(const std::string& str) { |
| - if (LowerCaseEqualsASCII(str, kPrivetConnectionStatusOnline)) { |
| - return DeviceDescription::ONLINE; |
| - } else if (LowerCaseEqualsASCII(str, kPrivetConnectionStatusOffline)) { |
| - return DeviceDescription::OFFLINE; |
| - } else if (LowerCaseEqualsASCII(str, kPrivetConnectionStatusConnecting)) { |
| - return DeviceDescription::CONNECTING; |
| - } else if (LowerCaseEqualsASCII(str, kPrivetConnectionStatusNotConfigured)) { |
| - return DeviceDescription::NOT_CONFIGURED; |
| - } |
| - |
| - return DeviceDescription::UNKNOWN; |
| +std::string GetValueByName(const std::vector<std::string>& metadata, |
| + const std::string& name) { |
| + std::string prefix = name + "="; |
|
Aleksey Shlyapnikov
2015/01/26 21:04:47
const std::string prefix(name + "=");
Vitaly Buka (NO REVIEWS)
2015/01/26 21:27:49
Done.
|
| + for (const std::string& record : metadata) |
| + if (StartsWithASCII(record, prefix, false)) |
| + return record.substr(prefix.size()); |
|
Aleksey Shlyapnikov
2015/01/26 21:04:47
Add {} around for and if bodies
Vitaly Buka (NO REVIEWS)
2015/01/26 21:27:49
Done.
|
| + return std::string(); |
| } |
| } // namespace |
| -DeviceDescription::DeviceDescription() |
| - : version(0), |
| - connection_state(UNKNOWN) { |
| -} |
| - |
| -DeviceDescription::~DeviceDescription() { |
| +DeviceDescription::DeviceDescription() : version(0) { |
| } |
| -void DeviceDescription::FillFromServiceDescription( |
| +DeviceDescription::DeviceDescription( |
| const ServiceDescription& service_description) { |
| address = service_description.address; |
| - ip_address = service_description.ip_address; |
| - last_seen = service_description.last_seen; |
| - for (std::vector<std::string>::const_iterator i = |
| - service_description.metadata.begin(); |
| - i != service_description.metadata.end(); |
| - i++) { |
| - size_t equals_pos = i->find_first_of('='); |
| - if (equals_pos == std::string::npos) |
| - continue; // We do not parse non key-value TXT records |
| - |
| - std::string key = i->substr(0, equals_pos); |
| - std::string value = i->substr(equals_pos + 1); |
| - |
| - if (LowerCaseEqualsASCII(key, kPrivetTxtKeyVersion)) { |
| - if (!base::StringToInt(value, &version)) |
| - continue; // Unknown version. |
| - } else if (LowerCaseEqualsASCII(key, kPrivetTxtKeyName)) { |
| - name = value; |
| - } else if (LowerCaseEqualsASCII(key, kPrivetTxtKeyDescription)) { |
| - description = value; |
| - } else if (LowerCaseEqualsASCII(key, kPrivetTxtKeyURL)) { |
| - url = value; |
| - } else if (LowerCaseEqualsASCII(key, kPrivetTxtKeyType)) { |
| - type = value; |
| - } else if (LowerCaseEqualsASCII(key, kPrivetTxtKeyID)) { |
| - id = value; |
| - } else if (LowerCaseEqualsASCII(key, kPrivetTxtKeyConnectionState)) { |
| - connection_state = ConnectionStateFromString(value); |
| - } |
| + const std::vector<std::string>& metadata = service_description.metadata; |
| + if (!base::StringToInt(GetValueByName(metadata, kPrivetTxtKeyVersion), |
| + &version)) { |
| + version = 0; |
|
Aleksey Shlyapnikov
2015/01/26 21:04:47
Why assign it again here?
Vitaly Buka (NO REVIEWS)
2015/01/26 21:27:49
for consistent result.
StringToInt implementation
|
| + } |
| + name = GetValueByName(metadata, kPrivetTxtKeyName); |
| + description = GetValueByName(metadata, kPrivetTxtKeyDescription); |
| + if (version >= 3) { |
| + type = GetValueByName(metadata, kPrivetTxtKeyDevicesClass); |
| + id = GetValueByName(metadata, kPrivetTxtKeyGcdID); |
| + } else { |
| + type = GetValueByName(metadata, kPrivetTxtKeyType); |
| + id = GetValueByName(metadata, kPrivetTxtKeyID); |
| } |
| } |
| +DeviceDescription::~DeviceDescription() { |
| +} |
| } // namespace local_discovery |