Home | History | Annotate | Download | only in net
      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