• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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