Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(297)

Unified Diff: chrome/browser/extensions/api/dial/mdns_service.cc

Issue 22870011: chrome.mdns API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698