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_WIFI_NETWORK_PROPERTIES_H_ 6 #define COMPONENTS_WIFI_NETWORK_PROPERTIES_H_ 7 8 #include <list> 9 #include <set> 10 11 #include "base/values.h" 12 #include "components/wifi/wifi_export.h" 13 14 namespace wifi { 15 16 typedef int32 Frequency; 17 18 enum FrequencyEnum { 19 kFrequencyAny = 0, 20 kFrequencyUnknown = 0, 21 kFrequency2400 = 2400, 22 kFrequency5000 = 5000 23 }; 24 25 typedef std::set<Frequency> FrequencySet; 26 27 // Network Properties, can be used to parse the result of |GetProperties| and 28 // |GetVisibleNetworks|. 29 struct WIFI_EXPORT NetworkProperties { 30 NetworkProperties(); 31 ~NetworkProperties(); 32 33 std::string connection_state; 34 std::string guid; 35 std::string name; 36 std::string ssid; 37 std::string bssid; 38 std::string type; 39 std::string security; 40 // |password| field is used to pass wifi password for network creation via 41 // |CreateNetwork| or connection via |StartConnect|. It does not persist 42 // once operation is completed. 43 std::string password; 44 // WiFi Signal Strength. 0..100 45 uint32 signal_strength; 46 bool auto_connect; 47 Frequency frequency; 48 FrequencySet frequency_set; 49 50 std::string json_extra; // Extra JSON properties for unit tests 51 52 scoped_ptr<base::DictionaryValue> ToValue(bool network_list) const; 53 // Updates only properties set in |value|. 54 bool UpdateFromValue(const base::DictionaryValue& value); 55 static std::string MacAddressAsString(const uint8 mac_as_int[6]); 56 static bool OrderByType(const NetworkProperties& l, 57 const NetworkProperties& r); 58 }; 59 60 typedef std::list<NetworkProperties> NetworkList; 61 62 } // namespace wifi 63 64 #endif // COMPONENTS_WIFI_NETWORK_PROPERTIES_H_ 65