Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / content / browser / geolocation / wifi_data_provider_chromeos.h
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.
4
5 #ifndef CONTENT_BROWSER_GEOLOCATION_WIFI_DATA_PROVIDER_CHROMEOS_H_
6 #define CONTENT_BROWSER_GEOLOCATION_WIFI_DATA_PROVIDER_CHROMEOS_H_
7
8 #include "base/compiler_specific.h"
9 #include "content/browser/geolocation/wifi_data_provider.h"
10 #include "content/browser/geolocation/wifi_polling_policy.h"
11
12 namespace content {
13
14 class CONTENT_EXPORT WifiDataProviderChromeOs : public WifiDataProvider {
15  public:
16   WifiDataProviderChromeOs();
17
18   // WifiDataProvider
19   virtual void StartDataProvider() override;
20   virtual void StopDataProvider() override;
21   virtual bool GetData(WifiData* data) override;
22
23  private:
24   friend class GeolocationChromeOsWifiDataProviderTest;
25   virtual ~WifiDataProviderChromeOs();
26
27   // UI thread
28   void DoWifiScanTaskOnUIThread();  // The polling task
29   void DoStartTaskOnUIThread();
30
31   // Client thread
32   void DidWifiScanTaskNoResults();
33   void DidWifiScanTask(const WifiData& new_data);
34
35   // Will schedule a scan; i.e. enqueue DoWifiScanTask deferred task.
36   void ScheduleNextScan(int interval);
37
38   // Will schedule starting of the scanning process.
39   void ScheduleStart();
40
41   // Will schedule stopping of the scanning process.
42   void ScheduleStop();
43
44   // Get access point data from chromeos.
45   bool GetAccessPointData(WifiData::AccessPointDataSet* data);
46
47   // Controls the polling update interval. (client thread)
48   scoped_ptr<WifiPollingPolicy> polling_policy_;
49
50   // The latest wifi data. (client thread)
51   WifiData wifi_data_;
52
53   // Whether we have strated the data provider. (client thread)
54   bool started_;
55
56   // Whether we've successfully completed a scan for WiFi data. (client thread)
57   bool is_first_scan_complete_;
58
59   DISALLOW_COPY_AND_ASSIGN(WifiDataProviderChromeOs);
60 };
61
62 }  // namespace content
63
64 #endif  // CONTENT_BROWSER_GEOLOCATION_WIFI_DATA_PROVIDER_CHROMEOS_H_