summaryrefslogtreecommitdiffstats
path: root/content/browser/geolocation/wifi_data.h
diff options
context:
space:
mode:
Diffstat (limited to 'content/browser/geolocation/wifi_data.h')
-rw-r--r--content/browser/geolocation/wifi_data.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/content/browser/geolocation/wifi_data.h b/content/browser/geolocation/wifi_data.h
new file mode 100644
index 0000000..a24e42e
--- /dev/null
+++ b/content/browser/geolocation/wifi_data.h
@@ -0,0 +1,54 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_BROWSER_GEOLOCATION_WIFI_DATA_H_
+#define CONTENT_BROWSER_GEOLOCATION_WIFI_DATA_H_
+
+#include <set>
+
+#include "base/basictypes.h"
+#include "base/strings/string16.h"
+#include "content/common/content_export.h"
+
+namespace content {
+
+// Wifi data relating to a single access point.
+struct CONTENT_EXPORT AccessPointData {
+ AccessPointData();
+ ~AccessPointData();
+
+ // MAC address, formatted as per MacAddressAsString16.
+ string16 mac_address;
+ int radio_signal_strength; // Measured in dBm
+ int channel;
+ int signal_to_noise; // Ratio in dB
+ string16 ssid; // Network identifier
+};
+
+// This is to allow AccessPointData to be used in std::set. We order
+// lexicographically by MAC address.
+struct AccessPointDataLess {
+ bool operator()(const AccessPointData& data1,
+ const AccessPointData& data2) const {
+ return data1.mac_address < data2.mac_address;
+ }
+};
+
+// All data for wifi.
+struct CONTENT_EXPORT WifiData {
+ WifiData();
+ ~WifiData();
+
+ // Determines whether a new set of WiFi data differs significantly from this.
+ bool DiffersSignificantly(const WifiData& other) const;
+
+ // Store access points as a set, sorted by MAC address. This allows quick
+ // comparison of sets for detecting changes and for caching.
+ typedef std::set<AccessPointData, AccessPointDataLess> AccessPointDataSet;
+ AccessPointDataSet access_point_data;
+};
+
+} // namespace content
+
+#endif // CONTENT_BROWSER_GEOLOCATION_WIFI_DATA_H_