| 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/utility/local_discovery/service_discovery_message_handler.h" | 5 #include "chrome/utility/local_discovery/service_discovery_message_handler.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
| 10 #include "chrome/common/local_discovery/local_discovery_messages.h" | 10 #include "chrome/common/local_discovery/local_discovery_messages.h" |
| (...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 bool force_update) { | 284 bool force_update) { |
| 285 if (!service_discovery_client_) | 285 if (!service_discovery_client_) |
| 286 return; | 286 return; |
| 287 DCHECK(ContainsKey(service_watchers_, id)); | 287 DCHECK(ContainsKey(service_watchers_, id)); |
| 288 service_watchers_[id]->DiscoverNewServices(force_update); | 288 service_watchers_[id]->DiscoverNewServices(force_update); |
| 289 } | 289 } |
| 290 | 290 |
| 291 void ServiceDiscoveryMessageHandler::DestroyWatcher(uint64 id) { | 291 void ServiceDiscoveryMessageHandler::DestroyWatcher(uint64 id) { |
| 292 if (!service_discovery_client_) | 292 if (!service_discovery_client_) |
| 293 return; | 293 return; |
| 294 DCHECK(ContainsKey(service_watchers_, id)); | |
| 295 service_watchers_.erase(id); | 294 service_watchers_.erase(id); |
| 296 } | 295 } |
| 297 | 296 |
| 298 void ServiceDiscoveryMessageHandler::ResolveService( | 297 void ServiceDiscoveryMessageHandler::ResolveService( |
| 299 uint64 id, | 298 uint64 id, |
| 300 const std::string& service_name) { | 299 const std::string& service_name) { |
| 301 if (!service_discovery_client_) | 300 if (!service_discovery_client_) |
| 302 return; | 301 return; |
| 303 DCHECK(!ContainsKey(service_resolvers_, id)); | 302 DCHECK(!ContainsKey(service_resolvers_, id)); |
| 304 scoped_ptr<ServiceResolver> resolver( | 303 scoped_ptr<ServiceResolver> resolver( |
| 305 service_discovery_client_->CreateServiceResolver( | 304 service_discovery_client_->CreateServiceResolver( |
| 306 service_name, | 305 service_name, |
| 307 base::Bind(&ServiceDiscoveryMessageHandler::OnServiceResolved, | 306 base::Bind(&ServiceDiscoveryMessageHandler::OnServiceResolved, |
| 308 base::Unretained(this), id))); | 307 base::Unretained(this), id))); |
| 309 resolver->StartResolving(); | 308 resolver->StartResolving(); |
| 310 service_resolvers_[id].reset(resolver.release()); | 309 service_resolvers_[id].reset(resolver.release()); |
| 311 } | 310 } |
| 312 | 311 |
| 313 void ServiceDiscoveryMessageHandler::DestroyResolver(uint64 id) { | 312 void ServiceDiscoveryMessageHandler::DestroyResolver(uint64 id) { |
| 314 if (!service_discovery_client_) | 313 if (!service_discovery_client_) |
| 315 return; | 314 return; |
| 316 DCHECK(ContainsKey(service_resolvers_, id)); | |
| 317 service_resolvers_.erase(id); | 315 service_resolvers_.erase(id); |
| 318 } | 316 } |
| 319 | 317 |
| 320 void ServiceDiscoveryMessageHandler::ResolveLocalDomain( | 318 void ServiceDiscoveryMessageHandler::ResolveLocalDomain( |
| 321 uint64 id, | 319 uint64 id, |
| 322 const std::string& domain, | 320 const std::string& domain, |
| 323 net::AddressFamily address_family) { | 321 net::AddressFamily address_family) { |
| 324 if (!service_discovery_client_) | 322 if (!service_discovery_client_) |
| 325 return; | 323 return; |
| 326 DCHECK(!ContainsKey(local_domain_resolvers_, id)); | 324 DCHECK(!ContainsKey(local_domain_resolvers_, id)); |
| 327 scoped_ptr<LocalDomainResolver> resolver( | 325 scoped_ptr<LocalDomainResolver> resolver( |
| 328 service_discovery_client_->CreateLocalDomainResolver( | 326 service_discovery_client_->CreateLocalDomainResolver( |
| 329 domain, address_family, | 327 domain, address_family, |
| 330 base::Bind(&ServiceDiscoveryMessageHandler::OnLocalDomainResolved, | 328 base::Bind(&ServiceDiscoveryMessageHandler::OnLocalDomainResolved, |
| 331 base::Unretained(this), id))); | 329 base::Unretained(this), id))); |
| 332 resolver->Start(); | 330 resolver->Start(); |
| 333 local_domain_resolvers_[id].reset(resolver.release()); | 331 local_domain_resolvers_[id].reset(resolver.release()); |
| 334 } | 332 } |
| 335 | 333 |
| 336 void ServiceDiscoveryMessageHandler::DestroyLocalDomainResolver(uint64 id) { | 334 void ServiceDiscoveryMessageHandler::DestroyLocalDomainResolver(uint64 id) { |
| 337 if (!service_discovery_client_) | 335 if (!service_discovery_client_) |
| 338 return; | 336 return; |
| 339 DCHECK(ContainsKey(local_domain_resolvers_, id)); | |
| 340 local_domain_resolvers_.erase(id); | 337 local_domain_resolvers_.erase(id); |
| 341 } | 338 } |
| 342 | 339 |
| 343 void ServiceDiscoveryMessageHandler::ShutdownLocalDiscovery() { | 340 void ServiceDiscoveryMessageHandler::ShutdownLocalDiscovery() { |
| 344 discovery_task_runner_->PostTask( | 341 discovery_task_runner_->PostTask( |
| 345 FROM_HERE, | 342 FROM_HERE, |
| 346 base::Bind(&ServiceDiscoveryMessageHandler::ShutdownOnIOThread, | 343 base::Bind(&ServiceDiscoveryMessageHandler::ShutdownOnIOThread, |
| 347 base::Unretained(this))); | 344 base::Unretained(this))); |
| 348 | 345 |
| 349 // This will wait for message loop to drain, so ShutdownOnIOThread will | 346 // This will wait for message loop to drain, so ShutdownOnIOThread will |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 385 const net::IPAddressNumber& address_ipv6) { | 382 const net::IPAddressNumber& address_ipv6) { |
| 386 DCHECK(service_discovery_client_); | 383 DCHECK(service_discovery_client_); |
| 387 utility_task_runner_->PostTask(FROM_HERE, base::Bind(&SendLocalDomainResolved, | 384 utility_task_runner_->PostTask(FROM_HERE, base::Bind(&SendLocalDomainResolved, |
| 388 id, success, | 385 id, success, |
| 389 address_ipv4, | 386 address_ipv4, |
| 390 address_ipv6)); | 387 address_ipv6)); |
| 391 } | 388 } |
| 392 | 389 |
| 393 | 390 |
| 394 } // namespace local_discovery | 391 } // namespace local_discovery |
| OLD | NEW |