Index: chrome/browser/extensions/api/dial/mdns_service.cc |
diff --git a/chrome/browser/extensions/api/dial/mdns_service.cc b/chrome/browser/extensions/api/dial/mdns_service.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5886851227ff42f4cc6b7aaee190f4ad786dbd1a |
--- /dev/null |
+++ b/chrome/browser/extensions/api/dial/mdns_service.cc |
@@ -0,0 +1,68 @@ |
+// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/extensions/api/dial/mdns_service.h" |
+ |
+#include "base/bind.h" |
+ |
+using local_discovery::ServiceWatcher; |
+using local_discovery::ServiceDiscoveryHostClientFactory; |
+ |
+namespace extensions { |
+ |
+ |
+MDNSService::MDNSService(std::string service_type) |
+ : service_type_(service_type), |
+ service_discovery_client_(ServiceDiscoveryHostClientFactory::GetClient()), |
+ started_(false) { |
+} |
+ |
+MDNSService::~MDNSService() {} |
+ |
+bool MDNSService::Start() { |
+ if (!started_) { |
+ service_watcher_ = service_discovery_client_->CreateServiceWatcher( |
+ service_type_, |
+ base::Bind(&MDNSService::OnServiceUpdated, |
+ base::Unretained(this))); |
+ service_watcher_->Start(); |
+ started_ = true; |
+ } |
+ return true; |
+} |
+ |
+void MDNSService::Stop() { |
+} |
+ |
+void MDNSService::Discover(bool force_update) { |
+ service_watcher_->DiscoverNewServices(force_update); |
+} |
+ |
+void MDNSService::OnServiceUpdated( |
+ ServiceWatcher::UpdateType update, |
+ const std::string& service_name) { |
+ if (update != ServiceWatcher::UPDATE_REMOVED) { |
+ // bool added = (update == ServiceWatcher::UPDATE_ADDED); |
+ // std::pair<ServiceResolverMap::iterator, bool> insert_result = |
+ // resolvers_.insert(make_pair(service_name, |
+ // linked_ptr<ServiceResolver>(NULL))); |
+ |
+ // // If there is already a resolver working on this service, don't add one. |
mark a. foltz
2013/08/19 18:25:26
Yeah, if we want to use the device we have to fire
|
+ // if (insert_result.second) { |
+ // scoped_ptr<ServiceResolver> resolver = |
+ // service_discovery_client_->CreateServiceResolver( |
+ // service_name, base::Bind( |
+ // &PrivetDeviceListerImpl::OnResolveComplete, |
+ // base::Unretained(this), |
+ // added)); |
+ |
+ // insert_result.first->second.reset(resolver.release()); |
+ // insert_result.first->second->StartResolving(); |
+ // } |
+ } else { |
+ // delegate_->DeviceRemoved(service_name); |
+ } |
+} |
+ |
+} // namespace extensions |