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_CHROMEOS_H_ 6 #define COMPONENTS_METRICS_NET_WIFI_ACCESS_POINT_INFO_PROVIDER_CHROMEOS_H_ 7 8 #include "base/basictypes.h" 9 #include "base/memory/weak_ptr.h" 10 #include "base/values.h" 11 #include "chromeos/network/network_state_handler_observer.h" 12 #include "components/metrics/net/wifi_access_point_info_provider.h" 13 14 // WifiAccessPointInfoProviderChromeos provides the connected wifi 15 // acccess point information for chromeos. 16 class WifiAccessPointInfoProviderChromeos 17 : public WifiAccessPointInfoProvider, 18 public chromeos::NetworkStateHandlerObserver, 19 public base::SupportsWeakPtr<WifiAccessPointInfoProviderChromeos> { 20 public: 21 WifiAccessPointInfoProviderChromeos(); 22 virtual ~WifiAccessPointInfoProviderChromeos(); 23 24 // WifiAccessPointInfoProvider 25 virtual bool GetInfo(WifiAccessPointInfo* info) OVERRIDE; 26 27 // NetworkStateHandlerObserver overrides. 28 virtual void DefaultNetworkChanged( 29 const chromeos::NetworkState* default_network) OVERRIDE; 30 31 private: 32 // Callback from Shill.Service.GetProperties. Parses |properties| to obtain 33 // the wifi access point information. 34 void ParseInfo(const std::string& service_path, 35 const base::DictionaryValue& properties); 36 37 WifiAccessPointInfo wifi_access_point_info_; 38 39 DISALLOW_COPY_AND_ASSIGN(WifiAccessPointInfoProviderChromeos); 40 }; 41 42 #endif // COMPONENTS_METRICS_NET_WIFI_ACCESS_POINT_INFO_PROVIDER_CHROMEOS_H_ 43