OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/extensions/api/mdns/dns_sd_device_lister.h" | 5 #include "chrome/browser/media/router/discovery/mdns/dns_sd_device_lister.h" |
6 | |
7 #include "chrome/common/extensions/api/mdns.h" | |
8 | 6 |
9 using local_discovery::ServiceDescription; | 7 using local_discovery::ServiceDescription; |
10 | 8 |
11 namespace extensions { | 9 namespace media_router { |
12 | 10 |
13 namespace { | 11 namespace { |
14 | 12 |
15 void FillServiceInfo(const ServiceDescription& service_description, | 13 void FillServiceInfo(const ServiceDescription& service_description, |
16 DnsSdService* service) { | 14 DnsSdService* service) { |
17 service->service_name = service_description.service_name; | 15 service->service_name = service_description.service_name; |
18 service->service_host_port = service_description.address.ToString(); | 16 service->service_host_port = service_description.address.ToString(); |
19 if (service_description.ip_address.IsValid()) { | 17 if (service_description.ip_address.IsValid()) { |
20 service->ip_address = service_description.ip_address.ToString(); | 18 service->ip_address = service_description.ip_address.ToString(); |
21 } | 19 } |
22 service->service_data = service_description.metadata; | 20 service->service_data = service_description.metadata; |
23 | 21 |
24 VLOG(1) << "Found " << service->service_name << ", " | 22 VLOG(1) << "Found " << service->service_name << ", " |
25 << service->service_host_port << ", " | 23 << service->service_host_port << ", " << service->ip_address; |
26 << service->ip_address; | |
27 } | 24 } |
28 | 25 |
29 } // namespace | 26 } // namespace |
30 | 27 |
31 DnsSdDeviceLister::DnsSdDeviceLister( | 28 DnsSdDeviceLister::DnsSdDeviceLister( |
32 local_discovery::ServiceDiscoveryClient* service_discovery_client, | 29 local_discovery::ServiceDiscoveryClient* service_discovery_client, |
33 DnsSdDelegate* delegate, | 30 DnsSdDelegate* delegate, |
34 const std::string& service_type) | 31 const std::string& service_type) |
35 : delegate_(delegate), | 32 : delegate_(delegate), |
36 device_lister_(this, service_discovery_client, service_type), | 33 device_lister_(this, service_discovery_client, service_type), |
37 started_(false) { | 34 started_(false) {} |
38 } | |
39 | 35 |
40 DnsSdDeviceLister::~DnsSdDeviceLister() { | 36 DnsSdDeviceLister::~DnsSdDeviceLister() {} |
41 } | |
42 | 37 |
43 void DnsSdDeviceLister::Discover(bool force_update) { | 38 void DnsSdDeviceLister::Discover(bool force_update) { |
44 if (!started_) { | 39 if (!started_) { |
45 device_lister_.Start(); | 40 device_lister_.Start(); |
46 started_ = true; | 41 started_ = true; |
47 VLOG(1) << "Started device lister for service type " | 42 VLOG(1) << "Started device lister for service type " |
48 << device_lister_.service_type(); | 43 << device_lister_.service_type(); |
49 } | 44 } |
50 device_lister_.DiscoverNewDevices(force_update); | 45 device_lister_.DiscoverNewDevices(force_update); |
51 VLOG(1) << "Discovery new devices for service type " | 46 VLOG(1) << "Discovery new devices for service type " |
52 << device_lister_.service_type(); | 47 << device_lister_.service_type(); |
53 } | 48 } |
54 | 49 |
55 void DnsSdDeviceLister::OnDeviceChanged( | 50 void DnsSdDeviceLister::OnDeviceChanged( |
56 bool added, | 51 bool added, |
57 const ServiceDescription& service_description) { | 52 const ServiceDescription& service_description) { |
58 DnsSdService service; | 53 DnsSdService service; |
59 FillServiceInfo(service_description, &service); | 54 FillServiceInfo(service_description, &service); |
60 VLOG(1) << "OnDeviceChanged: " | 55 VLOG(1) << "OnDeviceChanged: " |
61 << "service_name: " << service.service_name << ", " | 56 << "service_name: " << service.service_name << ", " |
62 << "added: " << added << ", " | 57 << "added: " << added << ", " |
63 << "service_type: " << device_lister_.service_type(); | 58 << "service_type: " << device_lister_.service_type(); |
64 delegate_->ServiceChanged(device_lister_.service_type(), added, service); | 59 delegate_->ServiceChanged(device_lister_.service_type(), added, service); |
65 } | 60 } |
66 | 61 |
67 void DnsSdDeviceLister::OnDeviceRemoved(const std::string& service_name) { | 62 void DnsSdDeviceLister::OnDeviceRemoved(const std::string& service_name) { |
68 VLOG(1) << "OnDeviceRemoved: " | 63 VLOG(1) << "OnDeviceRemoved: " |
69 << "service_name: " << service_name << ", " | 64 << "service_name: " << service_name << ", " |
70 << "service_type: " << device_lister_.service_type(); | 65 << "service_type: " << device_lister_.service_type(); |
71 delegate_->ServiceRemoved(device_lister_.service_type(), service_name); | 66 delegate_->ServiceRemoved(device_lister_.service_type(), service_name); |
72 } | 67 } |
73 | 68 |
74 void DnsSdDeviceLister::OnDeviceCacheFlushed() { | 69 void DnsSdDeviceLister::OnDeviceCacheFlushed() { |
75 VLOG(1) << "OnDeviceCacheFlushed: " | 70 VLOG(1) << "OnDeviceCacheFlushed: " |
76 << "service_type: " << device_lister_.service_type(); | 71 << "service_type: " << device_lister_.service_type(); |
77 delegate_->ServicesFlushed(device_lister_.service_type()); | 72 delegate_->ServicesFlushed(device_lister_.service_type()); |
78 device_lister_.DiscoverNewDevices(false); | 73 device_lister_.DiscoverNewDevices(false); |
79 } | 74 } |
80 | 75 |
81 } // namespace extensions | 76 } // namespace media_router |
OLD | NEW |