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.
6 #include "chrome/browser/local_discovery/privet_device_resolver.h"
8 namespace local_discovery
{
10 PrivetDeviceResolver::PrivetDeviceResolver(
11 ServiceDiscoveryClient
* service_discovery_client
,
12 const std::string
& service_name
,
13 const ResultCallback
& callback
)
14 : service_discovery_client_(service_discovery_client
),
15 service_name_(service_name
), callback_(callback
) {
18 PrivetDeviceResolver::~PrivetDeviceResolver() {
21 void PrivetDeviceResolver::Start() {
22 service_resolver_
= service_discovery_client_
->CreateServiceResolver(
24 base::Bind(&PrivetDeviceResolver::OnServiceResolved
,
25 base::Unretained(this)));
26 service_resolver_
->StartResolving();
29 void PrivetDeviceResolver::OnServiceResolved(
30 ServiceResolver::RequestStatus request_status
,
31 const ServiceDescription
& service_description
) {
32 DeviceDescription device_description
;
33 if (request_status
!= ServiceResolver::STATUS_SUCCESS
) {
34 callback_
.Run(false, device_description
);
38 device_description
.FillFromServiceDescription(service_description
);
39 callback_
.Run(true, device_description
);
42 } // namespace local_discovery