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

Unified Diff: chrome/browser/media/router/discovery/mdns/dns_sd_registry.cc

Issue 2874243003: [mDns] Make DnsSdRegistry a leaky singleton (Closed)
Patch Set: resolve code review comments from Mark Created 3 years, 7 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/media/router/discovery/mdns/dns_sd_registry.cc
diff --git a/chrome/browser/media/router/discovery/mdns/dns_sd_registry.cc b/chrome/browser/media/router/discovery/mdns/dns_sd_registry.cc
index 38364202af5231c260b78488eb6e324e432ef585..300daac34f521b7e9c83228db9ae41532338653b 100644
--- a/chrome/browser/media/router/discovery/mdns/dns_sd_registry.cc
+++ b/chrome/browser/media/router/discovery/mdns/dns_sd_registry.cc
@@ -115,13 +115,23 @@ DnsSdRegistry::DnsSdRegistry(ServiceDiscoverySharedClient* client) {
service_discovery_client_ = client;
}
-DnsSdRegistry::~DnsSdRegistry() {}
+DnsSdRegistry::~DnsSdRegistry() {
+ DCHECK(thread_checker_.CalledOnValidThread());
+}
+
+// static
+DnsSdRegistry* DnsSdRegistry::GetInstance() {
+ return base::Singleton<DnsSdRegistry,
+ base::LeakySingletonTraits<DnsSdRegistry>>::get();
+}
void DnsSdRegistry::AddObserver(DnsSdObserver* observer) {
+ DCHECK(thread_checker_.CalledOnValidThread());
observers_.AddObserver(observer);
}
void DnsSdRegistry::RemoveObserver(DnsSdObserver* observer) {
+ DCHECK(thread_checker_.CalledOnValidThread());
observers_.RemoveObserver(observer);
}
@@ -133,16 +143,19 @@ DnsSdDeviceLister* DnsSdRegistry::CreateDnsSdDeviceLister(
}
void DnsSdRegistry::Publish(const std::string& service_type) {
+ DCHECK(thread_checker_.CalledOnValidThread());
DispatchApiEvent(service_type);
}
void DnsSdRegistry::ForceDiscovery() {
+ DCHECK(thread_checker_.CalledOnValidThread());
for (const auto& next_service : service_data_map_) {
next_service.second->ForceDiscovery();
}
}
void DnsSdRegistry::RegisterDnsSdListener(const std::string& service_type) {
+ DCHECK(thread_checker_.CalledOnValidThread());
VLOG(1) << "RegisterDnsSdListener: " << service_type
<< ", registered: " << IsRegistered(service_type);
if (service_type.empty())
@@ -164,6 +177,7 @@ void DnsSdRegistry::RegisterDnsSdListener(const std::string& service_type) {
}
void DnsSdRegistry::UnregisterDnsSdListener(const std::string& service_type) {
+ DCHECK(thread_checker_.CalledOnValidThread());
VLOG(1) << "UnregisterDnsSdListener: " << service_type;
auto it = service_data_map_.find(service_type);
if (it == service_data_map_.end())
@@ -176,6 +190,7 @@ void DnsSdRegistry::UnregisterDnsSdListener(const std::string& service_type) {
void DnsSdRegistry::ServiceChanged(const std::string& service_type,
bool added,
const DnsSdService& service) {
+ DCHECK(thread_checker_.CalledOnValidThread());
VLOG(1) << "ServiceChanged: service_type: " << service_type
<< ", known: " << IsRegistered(service_type)
<< ", service: " << service.service_name << ", added: " << added;
@@ -194,6 +209,7 @@ void DnsSdRegistry::ServiceChanged(const std::string& service_type,
void DnsSdRegistry::ServiceRemoved(const std::string& service_type,
const std::string& service_name) {
+ DCHECK(thread_checker_.CalledOnValidThread());
VLOG(1) << "ServiceRemoved: service_type: " << service_type
<< ", known: " << IsRegistered(service_type)
<< ", service: " << service_name;
@@ -210,6 +226,7 @@ void DnsSdRegistry::ServiceRemoved(const std::string& service_type,
}
void DnsSdRegistry::ServicesFlushed(const std::string& service_type) {
+ DCHECK(thread_checker_.CalledOnValidThread());
VLOG(1) << "ServicesFlushed: service_type: " << service_type
<< ", known: " << IsRegistered(service_type);
if (!IsRegistered(service_type)) {
@@ -224,6 +241,7 @@ void DnsSdRegistry::ServicesFlushed(const std::string& service_type) {
}
void DnsSdRegistry::DispatchApiEvent(const std::string& service_type) {
+ DCHECK(thread_checker_.CalledOnValidThread());
VLOG(1) << "DispatchApiEvent: service_type: " << service_type;
for (auto& observer : observers_) {
observer.OnDnsSdEvent(service_type,
@@ -232,6 +250,7 @@ void DnsSdRegistry::DispatchApiEvent(const std::string& service_type) {
}
bool DnsSdRegistry::IsRegistered(const std::string& service_type) {
+ DCHECK(thread_checker_.CalledOnValidThread());
return service_data_map_.find(service_type) != service_data_map_.end();
}

Powered by Google App Engine
This is Rietveld 408576698