Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / content / browser / geolocation / wifi_data_provider_chromeos.h
blob8e24362e8b5069b5b38fff3202ad96658bf68b0c
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CONTENT_BROWSER_GEOLOCATION_WIFI_DATA_PROVIDER_CHROMEOS_H_
6 #define CONTENT_BROWSER_GEOLOCATION_WIFI_DATA_PROVIDER_CHROMEOS_H_
8 #include "base/compiler_specific.h"
9 #include "content/browser/geolocation/wifi_data_provider.h"
10 #include "content/browser/geolocation/wifi_polling_policy.h"
12 namespace content {
14 class CONTENT_EXPORT WifiDataProviderChromeOs : public WifiDataProvider {
15 public:
16 WifiDataProviderChromeOs();
18 // WifiDataProvider
19 virtual void StartDataProvider() OVERRIDE;
20 virtual void StopDataProvider() OVERRIDE;
21 virtual bool GetData(WifiData* data) OVERRIDE;
23 private:
24 friend class GeolocationChromeOsWifiDataProviderTest;
25 virtual ~WifiDataProviderChromeOs();
27 // UI thread
28 void DoWifiScanTaskOnUIThread(); // The polling task
29 void DoStartTaskOnUIThread();
31 // Client thread
32 void DidWifiScanTaskNoResults();
33 void DidWifiScanTask(const WifiData& new_data);
35 // Will schedule a scan; i.e. enqueue DoWifiScanTask deferred task.
36 void ScheduleNextScan(int interval);
38 // Will schedule starting of the scanning process.
39 void ScheduleStart();
41 // Will schedule stopping of the scanning process.
42 void ScheduleStop();
44 // Get access point data from chromeos.
45 bool GetAccessPointData(WifiData::AccessPointDataSet* data);
47 // Controls the polling update interval. (client thread)
48 scoped_ptr<WifiPollingPolicy> polling_policy_;
50 // The latest wifi data. (client thread)
51 WifiData wifi_data_;
53 // Whether we have strated the data provider. (client thread)
54 bool started_;
56 // Whether we've successfully completed a scan for WiFi data. (client thread)
57 bool is_first_scan_complete_;
59 DISALLOW_COPY_AND_ASSIGN(WifiDataProviderChromeOs);
62 } // namespace content
64 #endif // CONTENT_BROWSER_GEOLOCATION_WIFI_DATA_PROVIDER_CHROMEOS_H_