| Index: content/browser/geolocation/wifi_data_provider.h
|
| diff --git a/content/browser/geolocation/wifi_data_provider.h b/content/browser/geolocation/wifi_data_provider.h
|
| index bfb06ec54446962381dfaea0818ce3edf6b07a69..207b3ffe594f28db2ee7ab37fea8739c45e9caf7 100644
|
| --- a/content/browser/geolocation/wifi_data_provider.h
|
| +++ b/content/browser/geolocation/wifi_data_provider.h
|
| @@ -2,19 +2,6 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -// A wifi data provider provides wifi data from the device that is used by a
|
| -// NetworkLocationProvider to obtain a position fix. We use a singleton
|
| -// instance of the wifi data provider, which is used by multiple
|
| -// NetworkLocationProvider objects.
|
| -//
|
| -// This file provides WifiDataProvider, which provides static methods to
|
| -// access the singleton instance. The singleton instance uses a private
|
| -// implementation to abstract across platforms and also to allow mock providers
|
| -// to be used for testing.
|
| -//
|
| -// This file also provides WifiDataProviderImplBase, a base class which
|
| -// provides common functionality for the private implementations.
|
| -
|
| #ifndef CONTENT_BROWSER_GEOLOCATION_WIFI_DATA_PROVIDER_H_
|
| #define CONTENT_BROWSER_GEOLOCATION_WIFI_DATA_PROVIDER_H_
|
|
|
| @@ -32,16 +19,12 @@
|
|
|
| namespace content {
|
|
|
| -class WifiDataProvider;
|
| +class WifiDataProviderManager;
|
|
|
| -// See class WifiDataProvider for the public client API.
|
| -// WifiDataProvider uses containment to hide platform-specific implementation
|
| -// details from common code. This class provides common functionality for these
|
| -// contained implementation classes. This is a modified pimpl pattern.
|
| -class CONTENT_EXPORT WifiDataProviderImplBase
|
| - : public base::RefCountedThreadSafe<WifiDataProviderImplBase> {
|
| +class CONTENT_EXPORT WifiDataProvider
|
| + : public base::RefCountedThreadSafe<WifiDataProvider> {
|
| public:
|
| - WifiDataProviderImplBase();
|
| + WifiDataProvider();
|
|
|
| // Tells the provider to start looking for data. Callbacks will start
|
| // receiving notifications after this call.
|
| @@ -56,11 +39,11 @@ class CONTENT_EXPORT WifiDataProviderImplBase
|
| // obtain.
|
| virtual bool GetData(WifiData* data) = 0;
|
|
|
| - // Sets the container of this class, which is of type WifiDataProvider.
|
| + // Sets the container of this class, which is of type WifiDataProviderManager.
|
| // This is required to pass as a parameter when calling a callback.
|
| - void SetContainer(WifiDataProvider* container);
|
| + void SetContainer(WifiDataProviderManager* container);
|
|
|
| - typedef base::Callback<void(WifiDataProvider*)> WifiDataUpdateCallback;
|
| + typedef base::Callback<void(WifiDataProviderManager*)> WifiDataUpdateCallback;
|
|
|
| void AddCallback(WifiDataUpdateCallback* callback);
|
|
|
| @@ -69,8 +52,8 @@ class CONTENT_EXPORT WifiDataProviderImplBase
|
| bool has_callbacks() const;
|
|
|
| protected:
|
| - friend class base::RefCountedThreadSafe<WifiDataProviderImplBase>;
|
| - virtual ~WifiDataProviderImplBase();
|
| + friend class base::RefCountedThreadSafe<WifiDataProvider>;
|
| + virtual ~WifiDataProvider();
|
|
|
| typedef std::set<WifiDataUpdateCallback*> CallbackSet;
|
|
|
| @@ -85,7 +68,7 @@ class CONTENT_EXPORT WifiDataProviderImplBase
|
| private:
|
| void DoRunCallbacks();
|
|
|
| - WifiDataProvider* container_;
|
| + WifiDataProviderManager* container_;
|
|
|
| // Reference to the client's message loop. All callbacks should happen in this
|
| // context.
|
| @@ -93,67 +76,6 @@ class CONTENT_EXPORT WifiDataProviderImplBase
|
|
|
| CallbackSet callbacks_;
|
|
|
| - DISALLOW_COPY_AND_ASSIGN(WifiDataProviderImplBase);
|
| -};
|
| -
|
| -// A wifi data provider
|
| -//
|
| -// We use a singleton instance of this class which is shared by multiple network
|
| -// location providers. These location providers access the instance through the
|
| -// Register and Unregister methods.
|
| -class CONTENT_EXPORT WifiDataProvider {
|
| - public:
|
| - // Sets the factory function which will be used by Register to create the
|
| - // implementation used by the singleton instance. This factory approach is
|
| - // used both to abstract accross platform-specific implementations and to
|
| - // inject mock implementations for testing.
|
| - typedef WifiDataProviderImplBase* (*ImplFactoryFunction)(void);
|
| - static void SetFactory(ImplFactoryFunction factory_function_in);
|
| -
|
| - // Resets the factory function to the default.
|
| - static void ResetFactory();
|
| -
|
| - typedef base::Callback<void(WifiDataProvider*)> WifiDataUpdateCallback;
|
| -
|
| - // Registers a callback, which will be run whenever new data is available.
|
| - // Instantiates the singleton if necessary, and always returns it.
|
| - static WifiDataProvider* Register(WifiDataUpdateCallback* callback);
|
| -
|
| - // Removes a callback. If this is the last callback, deletes the singleton
|
| - // instance. Return value indicates success.
|
| - static bool Unregister(WifiDataUpdateCallback* callback);
|
| -
|
| - // Provides whatever data the provider has, which may be nothing. Return
|
| - // value indicates whether this is all the data the provider could ever
|
| - // obtain.
|
| - bool GetData(WifiData* data);
|
| -
|
| - private:
|
| - // Private constructor and destructor, callers access singleton through
|
| - // Register and Unregister.
|
| - WifiDataProvider();
|
| - virtual ~WifiDataProvider();
|
| -
|
| - void AddCallback(WifiDataUpdateCallback* callback);
|
| - bool RemoveCallback(WifiDataUpdateCallback* callback);
|
| - bool has_callbacks() const;
|
| -
|
| - void StartDataProvider();
|
| - void StopDataProvider();
|
| -
|
| - static WifiDataProviderImplBase* DefaultFactoryFunction();
|
| -
|
| - // The singleton-like instance of this class. (Not 'true' singleton, as it
|
| - // may go through multiple create/destroy/create cycles per process instance,
|
| - // e.g. when under test).
|
| - static WifiDataProvider* instance_;
|
| -
|
| - // The factory function used to create the singleton instance.
|
| - static ImplFactoryFunction factory_function_;
|
| -
|
| - // The internal implementation.
|
| - scoped_refptr<WifiDataProviderImplBase> impl_;
|
| -
|
| DISALLOW_COPY_AND_ASSIGN(WifiDataProvider);
|
| };
|
|
|
|
|