Index: content/browser/geolocation/wifi_data_provider_chromeos.h |
diff --git a/content/browser/geolocation/wifi_data_provider_chromeos.h b/content/browser/geolocation/wifi_data_provider_chromeos.h |
index a3fbcf6731ff9b714725066a3f28ff68df6ef98f..f350f01a439e8398782acea12eb0d0f7203b7309 100644 |
--- a/content/browser/geolocation/wifi_data_provider_chromeos.h |
+++ b/content/browser/geolocation/wifi_data_provider_chromeos.h |
@@ -12,20 +12,49 @@ namespace chromeos { |
class NetworkLibrary; |
} |
-class WifiDataProviderChromeOs : public WifiDataProviderCommon { |
+class WifiDataProviderChromeOs : public WifiDataProviderImplBase { |
public: |
WifiDataProviderChromeOs(); |
+ // WifiDataProviderImplBase |
+ virtual bool StartDataProvider(); |
+ virtual void StopDataProvider(); |
+ virtual bool GetData(WifiData* data); |
+ |
// Allows injection of |lib| for testing. |
- static WlanApiInterface* NewWlanApi(chromeos::NetworkLibrary* lib); |
+ static WifiDataProviderCommon::WlanApiInterface* NewWlanApi( |
+ chromeos::NetworkLibrary* lib); |
private: |
virtual ~WifiDataProviderChromeOs(); |
+ // The polling task |
+ void DoWifiScanTask(); |
+ void DidWifiScanTaskNoResults(); |
+ void DidWifiScanTask(const WifiData& new_data); |
+ void MaybeNotifyListeners(bool update_available); |
+ |
// WifiDataProviderCommon |
- virtual WlanApiInterface* NewWlanApi(); |
+ virtual WifiDataProviderCommon::WlanApiInterface* NewWlanApi(); |
virtual PollingPolicyInterface* NewPollingPolicy(); |
+ // Will schedule a scan; i.e. enqueue DoWifiScanTask deferred task. |
+ void ScheduleNextScan(int interval); |
+ |
+ // Underlying OS wifi API. |
+ scoped_ptr<WifiDataProviderCommon::WlanApiInterface> wlan_api_; |
+ |
+ // Controls the polling update interval. |
+ scoped_ptr<PollingPolicyInterface> polling_policy_; |
+ |
+ WifiData wifi_data_; |
+ |
+ // Whether we have strated the data provider. |
+ bool started_; |
+ |
+ // Whether we've successfully completed a scan for WiFi data. |
+ bool is_first_scan_complete_; |
+ |
DISALLOW_COPY_AND_ASSIGN(WifiDataProviderChromeOs); |
}; |