Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_BROWSER_CHROMEOS_CROS_NETWORK_LIBRARY_IMPL_CROS_H_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_CROS_NETWORK_LIBRARY_IMPL_CROS_H_ |
| 6 #define CHROME_BROWSER_CHROMEOS_CROS_NETWORK_LIBRARY_IMPL_CROS_H_ | 6 #define CHROME_BROWSER_CHROMEOS_CROS_NETWORK_LIBRARY_IMPL_CROS_H_ |
| 7 | 7 |
| 8 #include "chrome/browser/chromeos/cros/network_library_impl_base.h" | 8 #include "chrome/browser/chromeos/cros/network_library_impl_base.h" |
| 9 | 9 |
| 10 namespace chromeos { | 10 namespace chromeos { |
| 11 | 11 |
| 12 class NetworkLibraryImplCros : public NetworkLibraryImplBase { | 12 class NetworkLibraryImplCros : public NetworkLibraryImplBase { |
| 13 public: | 13 public: |
| 14 NetworkLibraryImplCros(); | 14 NetworkLibraryImplCros(); |
| 15 virtual ~NetworkLibraryImplCros(); | 15 virtual ~NetworkLibraryImplCros(); |
| 16 | 16 |
| 17 // Structure used to pass IP parameter info to a DoSetIPParameters callback, | |
| 18 // since Bind only takes up to six parameters. | |
| 19 struct IPParameterInfo { | |
| 20 std::string address; | |
| 21 std::string netmask; | |
| 22 std::string gateway; | |
| 23 std::string name_servers; | |
| 24 int dhcp_usage_mask; | |
| 25 }; | |
| 26 | |
| 17 virtual void Init() OVERRIDE; | 27 virtual void Init() OVERRIDE; |
| 18 virtual bool IsCros() const OVERRIDE; | 28 virtual bool IsCros() const OVERRIDE; |
| 19 | 29 |
| 20 ////////////////////////////////////////////////////////////////////////////// | 30 ////////////////////////////////////////////////////////////////////////////// |
| 21 // NetworkLibraryImplBase implementation. | 31 // NetworkLibraryImplBase implementation. |
| 22 | 32 |
| 23 virtual void MonitorNetworkStart(const std::string& service_path) OVERRIDE; | 33 virtual void MonitorNetworkStart(const std::string& service_path) OVERRIDE; |
| 24 virtual void MonitorNetworkStop(const std::string& service_path) OVERRIDE; | 34 virtual void MonitorNetworkStop(const std::string& service_path) OVERRIDE; |
| 25 virtual void MonitorNetworkDeviceStart( | 35 virtual void MonitorNetworkDeviceStart( |
| 26 const std::string& device_path) OVERRIDE; | 36 const std::string& device_path) OVERRIDE; |
| 27 virtual void MonitorNetworkDeviceStop( | 37 virtual void MonitorNetworkDeviceStop( |
| 28 const std::string& device_path) OVERRIDE; | 38 const std::string& device_path) OVERRIDE; |
| 29 | 39 |
| 30 virtual void CallConfigureService(const std::string& identifier, | 40 virtual void CallConfigureService(const std::string& identifier, |
| 31 const DictionaryValue* info) OVERRIDE; | 41 const base::DictionaryValue* info) OVERRIDE; |
| 32 virtual void CallConnectToNetwork(Network* network) OVERRIDE; | 42 virtual void CallConnectToNetwork(Network* network) OVERRIDE; |
| 33 virtual void CallRequestWifiNetworkAndConnect( | 43 virtual void CallRequestWifiNetworkAndConnect( |
| 34 const std::string& ssid, ConnectionSecurity security) OVERRIDE; | 44 const std::string& ssid, ConnectionSecurity security) OVERRIDE; |
| 35 virtual void CallRequestVirtualNetworkAndConnect( | 45 virtual void CallRequestVirtualNetworkAndConnect( |
| 36 const std::string& service_name, | 46 const std::string& service_name, |
| 37 const std::string& server_hostname, | 47 const std::string& server_hostname, |
| 38 ProviderType provider_type) OVERRIDE; | 48 ProviderType provider_type) OVERRIDE; |
| 39 virtual void CallDeleteRememberedNetwork( | 49 virtual void CallDeleteRememberedNetwork( |
| 40 const std::string& profile_path, | 50 const std::string& profile_path, |
| 41 const std::string& service_path) OVERRIDE; | 51 const std::string& service_path) OVERRIDE; |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 66 virtual void CallEnableNetworkDeviceType( | 76 virtual void CallEnableNetworkDeviceType( |
| 67 ConnectionType device, bool enable) OVERRIDE; | 77 ConnectionType device, bool enable) OVERRIDE; |
| 68 virtual void CallRemoveNetwork(const Network* network) OVERRIDE; | 78 virtual void CallRemoveNetwork(const Network* network) OVERRIDE; |
| 69 | 79 |
| 70 virtual void EnableOfflineMode(bool enable) OVERRIDE; | 80 virtual void EnableOfflineMode(bool enable) OVERRIDE; |
| 71 | 81 |
| 72 virtual NetworkIPConfigVector GetIPConfigs( | 82 virtual NetworkIPConfigVector GetIPConfigs( |
| 73 const std::string& device_path, | 83 const std::string& device_path, |
| 74 std::string* hardware_address, | 84 std::string* hardware_address, |
| 75 HardwareAddressFormat format) OVERRIDE; | 85 HardwareAddressFormat format) OVERRIDE; |
| 76 virtual void SetIPConfig(const NetworkIPConfig& ipconfig) OVERRIDE; | 86 virtual void SetIPParameters(const std::string& service_path, |
| 87 const std::string& address, | |
| 88 const std::string& netmask, | |
| 89 const std::string& gateway, | |
| 90 const std::string& name_servers, | |
| 91 int dhcp_usage_mask) OVERRIDE; | |
| 77 | 92 |
| 78 ////////////////////////////////////////////////////////////////////////////// | 93 ////////////////////////////////////////////////////////////////////////////// |
| 79 // Callbacks. | 94 // Callbacks. |
| 80 void UpdateNetworkStatus( | 95 void UpdateNetworkStatus( |
| 81 const std::string& path, const std::string& key, const Value& value); | 96 const std::string& path, const std::string& key, const Value& value); |
| 82 | 97 |
| 83 void UpdateNetworkDeviceStatus( | 98 void UpdateNetworkDeviceStatus( |
| 84 const std::string& path, const std::string& key, const Value& value); | 99 const std::string& path, const std::string& key, const Value& value); |
| 85 // Cellular specific updates. Returns false if update was ignored / reverted | 100 // Cellular specific updates. Returns false if update was ignored / reverted |
| 86 // and notification should be skipped. | 101 // and notification should be skipped. |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 109 void NetworkManagerUpdate(const std::string& manager_path, | 124 void NetworkManagerUpdate(const std::string& manager_path, |
| 110 const base::DictionaryValue* properties); | 125 const base::DictionaryValue* properties); |
| 111 | 126 |
| 112 void NetworkServiceUpdate(const std::string& service_path, | 127 void NetworkServiceUpdate(const std::string& service_path, |
| 113 const base::DictionaryValue* properties); | 128 const base::DictionaryValue* properties); |
| 114 void RememberedNetworkServiceUpdate(const std::string& service_path, | 129 void RememberedNetworkServiceUpdate(const std::string& service_path, |
| 115 const base::DictionaryValue* properties); | 130 const base::DictionaryValue* properties); |
| 116 void NetworkDeviceUpdate(const std::string& device_path, | 131 void NetworkDeviceUpdate(const std::string& device_path, |
| 117 const base::DictionaryValue* properties); | 132 const base::DictionaryValue* properties); |
| 118 | 133 |
| 134 // Second half of setting IP Parameters. SetIPParameters above kicks off | |
| 135 // an async information fetch, and this completes the operation when that | |
| 136 // fetch is complete. | |
| 137 void SetIPParametersCallback(const IPParameterInfo& info, | |
| 138 const std::string& service_path, | |
| 139 const base::DictionaryValue* properties); | |
|
stevenjb
2012/08/13 17:43:44
Does this need to be part of the public API? If so
Greg Spencer (Chromium)
2012/08/13 23:53:44
No, I guess it doesn't. I had thought that it nee
| |
| 140 | |
| 119 // Second half of refreshing IPConfig for a network. Refreshes all IP config | 141 // Second half of refreshing IPConfig for a network. Refreshes all IP config |
| 120 // paths found in properties. | 142 // paths found in properties. |
| 121 void RefreshIPConfigCallback(const std::string& device_path, | 143 void RefreshIPConfigCallback(const std::string& device_path, |
| 122 const base::DictionaryValue* properties); | 144 const base::DictionaryValue* properties); |
| 123 | 145 |
| 124 private: | 146 private: |
| 125 // This processes all Manager update messages. | 147 // This processes all Manager update messages. |
| 126 bool NetworkManagerStatusChanged(const std::string& key, const Value* value); | 148 bool NetworkManagerStatusChanged(const std::string& key, const Value* value); |
| 127 void ParseNetworkManager(const DictionaryValue& dict); | 149 void ParseNetworkManager(const base::DictionaryValue& dict); |
| 128 void UpdateTechnologies(const ListValue* technologies, int* bitfieldp); | 150 void UpdateTechnologies(const base::ListValue* technologies, int* bitfieldp); |
| 129 void UpdateAvailableTechnologies(const ListValue* technologies); | 151 void UpdateAvailableTechnologies(const base::ListValue* technologies); |
| 130 void UpdateEnabledTechnologies(const ListValue* technologies); | 152 void UpdateEnabledTechnologies(const base::ListValue* technologies); |
| 131 void UpdateConnectedTechnologies(const ListValue* technologies); | 153 void UpdateConnectedTechnologies(const base::ListValue* technologies); |
| 132 | 154 |
| 133 // Update network lists. | 155 // Update network lists. |
| 134 void UpdateNetworkServiceList(const ListValue* services); | 156 void UpdateNetworkServiceList(const base::ListValue* services); |
| 135 void UpdateWatchedNetworkServiceList(const ListValue* services); | 157 void UpdateWatchedNetworkServiceList(const base::ListValue* services); |
| 136 Network* ParseNetwork(const std::string& service_path, | 158 Network* ParseNetwork(const std::string& service_path, |
| 137 const DictionaryValue& info); | 159 const base::DictionaryValue& info); |
| 138 | 160 |
| 139 void UpdateRememberedNetworks(const ListValue* profiles); | 161 void UpdateRememberedNetworks(const base::ListValue* profiles); |
| 140 void RequestRememberedNetworksUpdate(); | 162 void RequestRememberedNetworksUpdate(); |
| 141 void UpdateProfile(const std::string& profile_path, | 163 void UpdateProfile(const std::string& profile_path, |
| 142 const DictionaryValue* properties); | 164 const base::DictionaryValue* properties); |
| 143 Network* ParseRememberedNetwork(const std::string& service_path, | 165 Network* ParseRememberedNetwork(const std::string& service_path, |
| 144 const DictionaryValue& info); | 166 const base::DictionaryValue& info); |
| 145 | 167 |
| 146 // NetworkDevice list management functions. | 168 // NetworkDevice list management functions. |
| 147 void UpdateNetworkDeviceList(const ListValue* devices); | 169 void UpdateNetworkDeviceList(const base::ListValue* devices); |
| 148 void ParseNetworkDevice(const std::string& device_path, | 170 void ParseNetworkDevice(const std::string& device_path, |
| 149 const DictionaryValue& info); | 171 const base::DictionaryValue& info); |
| 150 | 172 |
| 151 // Empty device observer to ensure that device property updates are received. | 173 // Empty device observer to ensure that device property updates are received. |
| 152 class NetworkLibraryDeviceObserver : public NetworkDeviceObserver { | 174 class NetworkLibraryDeviceObserver : public NetworkDeviceObserver { |
| 153 public: | 175 public: |
| 154 virtual ~NetworkLibraryDeviceObserver() {} | 176 virtual ~NetworkLibraryDeviceObserver() {} |
| 155 virtual void OnNetworkDeviceChanged( | 177 virtual void OnNetworkDeviceChanged( |
| 156 NetworkLibrary* cros, const NetworkDevice* device) OVERRIDE {} | 178 NetworkLibrary* cros, const NetworkDevice* device) OVERRIDE {} |
| 157 }; | 179 }; |
| 158 | 180 |
| 159 typedef std::map<std::string, CrosNetworkWatcher*> NetworkWatcherMap; | 181 typedef std::map<std::string, CrosNetworkWatcher*> NetworkWatcherMap; |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 174 | 196 |
| 175 // Map of monitored devices. | 197 // Map of monitored devices. |
| 176 NetworkWatcherMap monitored_devices_; | 198 NetworkWatcherMap monitored_devices_; |
| 177 | 199 |
| 178 DISALLOW_COPY_AND_ASSIGN(NetworkLibraryImplCros); | 200 DISALLOW_COPY_AND_ASSIGN(NetworkLibraryImplCros); |
| 179 }; | 201 }; |
| 180 | 202 |
| 181 } // namespace chromeos | 203 } // namespace chromeos |
| 182 | 204 |
| 183 #endif // CHROME_BROWSER_CHROMEOS_CROS_NETWORK_LIBRARY_IMPL_CROS_H_ | 205 #endif // CHROME_BROWSER_CHROMEOS_CROS_NETWORK_LIBRARY_IMPL_CROS_H_ |
| OLD | NEW |