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

Side by Side Diff: chrome/browser/geolocation/network_location_provider.h

Issue 3153031: Gateway Location Provider (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: Land patch Created 10 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_GEOLOCATION_NETWORK_LOCATION_PROVIDER_H_ 5 #ifndef CHROME_BROWSER_GEOLOCATION_NETWORK_LOCATION_PROVIDER_H_
6 #define CHROME_BROWSER_GEOLOCATION_NETWORK_LOCATION_PROVIDER_H_ 6 #define CHROME_BROWSER_GEOLOCATION_NETWORK_LOCATION_PROVIDER_H_
7 #pragma once 7 #pragma once
8 8
9 #include <string> 9 #include <string>
10 10
11 #include "base/basictypes.h" 11 #include "base/basictypes.h"
12 #include "base/ref_counted.h" 12 #include "base/ref_counted.h"
13 #include "base/scoped_ptr.h" 13 #include "base/scoped_ptr.h"
14 #include "base/string16.h" 14 #include "base/string16.h"
15 #include "base/thread.h" 15 #include "base/thread.h"
16 #include "chrome/browser/geolocation/device_data_provider.h" 16 #include "chrome/browser/geolocation/device_data_provider.h"
17 #include "chrome/browser/geolocation/location_provider.h" 17 #include "chrome/browser/geolocation/location_provider.h"
18 #include "chrome/browser/geolocation/network_location_request.h" 18 #include "chrome/browser/geolocation/network_location_request.h"
19 #include "chrome/common/geoposition.h" 19 #include "chrome/common/geoposition.h"
20 20
21 class URLFetcherProtectEntry; 21 class URLFetcherProtectEntry;
22 22
23 class NetworkLocationProvider 23 class NetworkLocationProvider
24 : public LocationProviderBase, 24 : public LocationProviderBase,
25 public GatewayDataProvider::ListenerInterface,
25 public RadioDataProvider::ListenerInterface, 26 public RadioDataProvider::ListenerInterface,
26 public WifiDataProvider::ListenerInterface, 27 public WifiDataProvider::ListenerInterface,
27 public NetworkLocationRequest::ListenerInterface { 28 public NetworkLocationRequest::ListenerInterface {
28 public: 29 public:
29 NetworkLocationProvider(AccessTokenStore* access_token_store, 30 NetworkLocationProvider(AccessTokenStore* access_token_store,
30 URLRequestContextGetter* context, 31 URLRequestContextGetter* context,
31 const GURL& url, 32 const GURL& url,
32 const string16& access_token); 33 const string16& access_token);
33 virtual ~NetworkLocationProvider(); 34 virtual ~NetworkLocationProvider();
34 35
(...skipping 10 matching lines...) Expand all
45 46
46 // Satisfies a position request from cache or network. 47 // Satisfies a position request from cache or network.
47 void RequestPosition(); 48 void RequestPosition();
48 49
49 // Internal helper used by DeviceDataUpdateAvailable 50 // Internal helper used by DeviceDataUpdateAvailable
50 void OnDeviceDataUpdated(); 51 void OnDeviceDataUpdated();
51 52
52 bool IsStarted() const; 53 bool IsStarted() const;
53 54
54 // DeviceDataProvider::ListenerInterface implementation. 55 // DeviceDataProvider::ListenerInterface implementation.
56 virtual void DeviceDataUpdateAvailable(GatewayDataProvider* provider);
55 virtual void DeviceDataUpdateAvailable(RadioDataProvider* provider); 57 virtual void DeviceDataUpdateAvailable(RadioDataProvider* provider);
56 virtual void DeviceDataUpdateAvailable(WifiDataProvider* provider); 58 virtual void DeviceDataUpdateAvailable(WifiDataProvider* provider);
57 59
58 // NetworkLocationRequest::ListenerInterface implementation. 60 // NetworkLocationRequest::ListenerInterface implementation.
59 virtual void LocationResponseAvailable(const Geoposition& position, 61 virtual void LocationResponseAvailable(const Geoposition& position,
60 bool server_error, 62 bool server_error,
61 const string16& access_token, 63 const string16& access_token,
64 const GatewayData& gateway_data,
62 const RadioData& radio_data, 65 const RadioData& radio_data,
63 const WifiData& wifi_data); 66 const WifiData& wifi_data);
64 67
65 scoped_refptr<AccessTokenStore> access_token_store_; 68 scoped_refptr<AccessTokenStore> access_token_store_;
66 69
67 // The device data providers, acquired via global factories. 70 // The device data providers, acquired via global factories.
71 GatewayDataProvider* gateway_data_provider_;
68 RadioDataProvider* radio_data_provider_; 72 RadioDataProvider* radio_data_provider_;
69 WifiDataProvider* wifi_data_provider_; 73 WifiDataProvider* wifi_data_provider_;
70 74
71 // The radio and wifi data, flags to indicate if each data set is complete. 75 // The radio and wifi data, flags to indicate if each data set is complete.
76 GatewayData gateway_data_;
72 RadioData radio_data_; 77 RadioData radio_data_;
73 WifiData wifi_data_; 78 WifiData wifi_data_;
79 bool is_gateway_data_complete_;
74 bool is_radio_data_complete_; 80 bool is_radio_data_complete_;
75 bool is_wifi_data_complete_; 81 bool is_wifi_data_complete_;
76 82
77 // The timestamp for the latest device data update. 83 // The timestamp for the latest device data update.
78 base::Time device_data_updated_timestamp_; 84 base::Time device_data_updated_timestamp_;
79 85
80 // Cached value loaded from the token store or set by a previous server 86 // Cached value loaded from the token store or set by a previous server
81 // response, and sent in each subsequent network request. 87 // response, and sent in each subsequent network request.
82 string16 access_token_; 88 string16 access_token_;
83 89
84 // The current best position estimate. 90 // The current best position estimate.
85 Geoposition position_; 91 Geoposition position_;
86 92
87 bool is_new_data_available_; 93 bool is_new_data_available_;
88 94
89 std::string most_recent_authorized_host_; 95 std::string most_recent_authorized_host_;
90 96
91 // The network location request object, and the url it uses. 97 // The network location request object, and the url it uses.
92 scoped_ptr<NetworkLocationRequest> request_; 98 scoped_ptr<NetworkLocationRequest> request_;
93 99
94 ScopedRunnableMethodFactory<NetworkLocationProvider> delayed_start_task_; 100 ScopedRunnableMethodFactory<NetworkLocationProvider> delayed_start_task_;
95 // The cache of positions. 101 // The cache of positions.
96 scoped_ptr<PositionCache> position_cache_; 102 scoped_ptr<PositionCache> position_cache_;
97 103
98 DISALLOW_COPY_AND_ASSIGN(NetworkLocationProvider); 104 DISALLOW_COPY_AND_ASSIGN(NetworkLocationProvider);
99 }; 105 };
100 106
101 #endif // CHROME_BROWSER_GEOLOCATION_NETWORK_LOCATION_PROVIDER_H_ 107 #endif // CHROME_BROWSER_GEOLOCATION_NETWORK_LOCATION_PROVIDER_H_
OLDNEW
« no previous file with comments | « chrome/browser/geolocation/empty_device_data_provider.cc ('k') | chrome/browser/geolocation/network_location_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698