1 // Copyright 2014 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 "chrome/browser/local_discovery/device_description.h"
9 #include "base/strings/string_number_conversions.h"
10 #include "base/strings/string_util.h"
11 #include "chrome/browser/local_discovery/privet_constants.h"
12 #include "chrome/common/local_discovery/service_discovery_client.h"
14 namespace local_discovery
{
18 std::string
GetValueByName(const std::vector
<std::string
>& metadata
,
19 const std::string
& name
) {
20 std::string
prefix(name
+ "=");
21 for (const std::string
& record
: metadata
) {
22 if (base::StartsWith(record
, prefix
,
23 base::CompareCase::INSENSITIVE_ASCII
)) {
24 return record
.substr(prefix
.size());
32 DeviceDescription::DeviceDescription() : version(0) {
35 DeviceDescription::DeviceDescription(
36 const ServiceDescription
& service_description
) {
37 address
= service_description
.address
;
39 const std::vector
<std::string
>& metadata
= service_description
.metadata
;
40 if (!base::StringToInt(GetValueByName(metadata
, kPrivetTxtKeyVersion
),
44 name
= GetValueByName(metadata
, kPrivetTxtKeyName
);
45 description
= GetValueByName(metadata
, kPrivetTxtKeyDescription
);
47 type
= GetValueByName(metadata
, kPrivetTxtKeyDevicesClass
);
48 id
= GetValueByName(metadata
, kPrivetTxtKeyGcdID
);
50 type
= GetValueByName(metadata
, kPrivetTxtKeyType
);
51 id
= GetValueByName(metadata
, kPrivetTxtKeyID
);
55 DeviceDescription::~DeviceDescription() {
58 } // namespace local_discovery