1 // Copyright 2014 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 COMPONENTS_METRICS_NET_WIFI_ACCESS_POINT_INFO_PROVIDER_H_ 6 #define COMPONENTS_METRICS_NET_WIFI_ACCESS_POINT_INFO_PROVIDER_H_ 7 8 #include <string> 9 #include "base/basictypes.h" 10 11 // Interface for accessing connected wireless access point information. 12 class WifiAccessPointInfoProvider { 13 public: 14 // Wifi access point security mode definitions. 15 enum WifiSecurityMode { 16 WIFI_SECURITY_UNKNOWN = 0, 17 WIFI_SECURITY_WPA = 1, 18 WIFI_SECURITY_WEP = 2, 19 WIFI_SECURITY_RSN = 3, 20 WIFI_SECURITY_802_1X = 4, 21 WIFI_SECURITY_PSK = 5, 22 WIFI_SECURITY_NONE 23 }; 24 25 // Information of the currently connected wifi access point. 26 struct WifiAccessPointInfo { 27 WifiAccessPointInfo(); 28 ~WifiAccessPointInfo(); 29 WifiSecurityMode security; 30 std::string bssid; 31 std::string model_number; 32 std::string model_name; 33 std::string device_name; 34 std::string oui_list; 35 }; 36 37 WifiAccessPointInfoProvider(); 38 virtual ~WifiAccessPointInfoProvider(); 39 40 // Fill in the wifi access point info if device is currently connected to a 41 // wifi access point. Return true if device is connected to a wifi access 42 // point, false otherwise. 43 virtual bool GetInfo(WifiAccessPointInfo *info); 44 45 private: 46 DISALLOW_COPY_AND_ASSIGN(WifiAccessPointInfoProvider); 47 }; 48 49 #endif // COMPONENTS_METRICS_NET_WIFI_ACCESS_POINT_INFO_PROVIDER_H_ 50