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 |