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

Unified Diff: content/browser/geolocation/wifi_data_provider_manager.cc

Issue 474433003: Cleaner organization of WifiDataProvider code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rabase and rename arguments to manager Created 6 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: content/browser/geolocation/wifi_data_provider_manager.cc
diff --git a/content/browser/geolocation/wifi_data_provider.cc b/content/browser/geolocation/wifi_data_provider_manager.cc
similarity index 42%
copy from content/browser/geolocation/wifi_data_provider.cc
copy to content/browser/geolocation/wifi_data_provider_manager.cc
index 85595f927ab8b43b507eb628df471f7fff94624f..1dc1770a1911222d7dbae080d18c15e6ac2fd3f5 100644
--- a/content/browser/geolocation/wifi_data_provider.cc
+++ b/content/browser/geolocation/wifi_data_provider_manager.cc
@@ -2,32 +2,36 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "content/browser/geolocation/wifi_data_provider_manager.h"
+
#include "content/browser/geolocation/wifi_data_provider.h"
namespace content {
// static
-WifiDataProvider* WifiDataProvider::instance_ = NULL;
+WifiDataProviderManager* WifiDataProviderManager::instance_ = NULL;
// static
-WifiDataProvider::ImplFactoryFunction WifiDataProvider::factory_function_ =
- DefaultFactoryFunction;
+WifiDataProviderManager::ImplFactoryFunction
+ WifiDataProviderManager::factory_function_ = DefaultFactoryFunction;
// static
-void WifiDataProvider::SetFactory(ImplFactoryFunction factory_function_in) {
+void WifiDataProviderManager::SetFactory(
+ ImplFactoryFunction factory_function_in) {
factory_function_ = factory_function_in;
}
// static
-void WifiDataProvider::ResetFactory() {
+void WifiDataProviderManager::ResetFactory() {
factory_function_ = DefaultFactoryFunction;
}
// static
-WifiDataProvider* WifiDataProvider::Register(WifiDataUpdateCallback* callback) {
+WifiDataProviderManager* WifiDataProviderManager::Register(
+ WifiDataUpdateCallback* callback) {
bool need_to_start_data_provider = false;
if (!instance_) {
- instance_ = new WifiDataProvider();
+ instance_ = new WifiDataProviderManager();
need_to_start_data_provider = true;
}
DCHECK(instance_);
@@ -40,7 +44,7 @@ WifiDataProvider* WifiDataProvider::Register(WifiDataUpdateCallback* callback) {
}
// static
-bool WifiDataProvider::Unregister(WifiDataUpdateCallback* callback) {
+bool WifiDataProviderManager::Unregister(WifiDataUpdateCallback* callback) {
DCHECK(instance_);
DCHECK(instance_->has_callbacks());
if (!instance_->RemoveCallback(callback)) {
@@ -57,90 +61,39 @@ bool WifiDataProvider::Unregister(WifiDataUpdateCallback* callback) {
return true;
}
-WifiDataProviderImplBase::WifiDataProviderImplBase()
- : container_(NULL),
- client_loop_(base::MessageLoop::current()) {
- DCHECK(client_loop_);
-}
-
-WifiDataProviderImplBase::~WifiDataProviderImplBase() {
-}
-
-void WifiDataProviderImplBase::SetContainer(WifiDataProvider* container) {
- container_ = container;
-}
-
-void WifiDataProviderImplBase::AddCallback(WifiDataUpdateCallback* callback) {
- callbacks_.insert(callback);
-}
-
-bool WifiDataProviderImplBase::RemoveCallback(
- WifiDataUpdateCallback* callback) {
- return callbacks_.erase(callback) == 1;
-}
-
-bool WifiDataProviderImplBase::has_callbacks() const {
- return !callbacks_.empty();
-}
-
-void WifiDataProviderImplBase::RunCallbacks() {
- client_loop_->PostTask(FROM_HERE, base::Bind(
- &WifiDataProviderImplBase::DoRunCallbacks,
- this));
-}
-
-bool WifiDataProviderImplBase::CalledOnClientThread() const {
- return base::MessageLoop::current() == this->client_loop_;
-}
-
-base::MessageLoop* WifiDataProviderImplBase::client_loop() const {
- return client_loop_;
-}
-
-void WifiDataProviderImplBase::DoRunCallbacks() {
- // It's possible that all the callbacks (and the container) went away
- // whilst this task was pending. This is fine; the loop will be a no-op.
- CallbackSet::const_iterator iter = callbacks_.begin();
- while (iter != callbacks_.end()) {
- WifiDataUpdateCallback* callback = *iter;
- ++iter; // Advance iter before running, in case callback unregisters.
- callback->Run(container_);
- }
-}
-
-WifiDataProvider::WifiDataProvider() {
+WifiDataProviderManager::WifiDataProviderManager() {
DCHECK(factory_function_);
impl_ = (*factory_function_)();
DCHECK(impl_.get());
impl_->SetContainer(this);
}
-WifiDataProvider::~WifiDataProvider() {
+WifiDataProviderManager::~WifiDataProviderManager() {
DCHECK(impl_.get());
impl_->SetContainer(NULL);
}
-bool WifiDataProvider::GetData(WifiData* data) {
+bool WifiDataProviderManager::GetData(WifiData* data) {
return impl_->GetData(data);
}
-void WifiDataProvider::AddCallback(WifiDataUpdateCallback* callback) {
+void WifiDataProviderManager::AddCallback(WifiDataUpdateCallback* callback) {
impl_->AddCallback(callback);
}
-bool WifiDataProvider::RemoveCallback(WifiDataUpdateCallback* callback) {
+bool WifiDataProviderManager::RemoveCallback(WifiDataUpdateCallback* callback) {
return impl_->RemoveCallback(callback);
}
-bool WifiDataProvider::has_callbacks() const {
+bool WifiDataProviderManager::has_callbacks() const {
return impl_->has_callbacks();
}
-void WifiDataProvider::StartDataProvider() {
+void WifiDataProviderManager::StartDataProvider() {
impl_->StartDataProvider();
}
-void WifiDataProvider::StopDataProvider() {
+void WifiDataProviderManager::StopDataProvider() {
impl_->StopDataProvider();
}
« no previous file with comments | « content/browser/geolocation/wifi_data_provider_manager.h ('k') | content/browser/geolocation/wifi_data_provider_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698