| 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 CHROMEOS_NETWORK_NETWORK_STATE_HANDLER_H_ | 5 #ifndef CHROMEOS_NETWORK_NETWORK_STATE_HANDLER_H_ |
| 6 #define CHROMEOS_NETWORK_NETWORK_STATE_HANDLER_H_ | 6 #define CHROMEOS_NETWORK_NETWORK_STATE_HANDLER_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <string> | 10 #include <string> |
| 11 #include <vector> | 11 #include <vector> |
| 12 | 12 |
| 13 #include "base/callback_forward.h" | 13 #include "base/callback_forward.h" |
| 14 #include "base/gtest_prod_util.h" | 14 #include "base/gtest_prod_util.h" |
| 15 #include "base/memory/scoped_ptr.h" | 15 #include "base/memory/scoped_ptr.h" |
| 16 #include "base/observer_list.h" | 16 #include "base/observer_list.h" |
| 17 #include "chromeos/chromeos_export.h" | 17 #include "chromeos/chromeos_export.h" |
| 18 #include "chromeos/network/managed_state.h" | 18 #include "chromeos/network/managed_state.h" |
| 19 #include "chromeos/network/network_handler.h" |
| 19 #include "chromeos/network/network_handler_callbacks.h" | 20 #include "chromeos/network/network_handler_callbacks.h" |
| 20 #include "chromeos/network/shill_property_handler.h" | 21 #include "chromeos/network/shill_property_handler.h" |
| 21 | 22 |
| 22 namespace base { | 23 namespace base { |
| 23 class DictionaryValue; | 24 class DictionaryValue; |
| 24 class ListValue; | 25 class ListValue; |
| 25 class Value; | 26 class Value; |
| 26 } | 27 } |
| 27 | 28 |
| 28 namespace chromeos { | 29 namespace chromeos { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 enum TechnologyState { | 61 enum TechnologyState { |
| 61 TECHNOLOGY_UNAVAILABLE, | 62 TECHNOLOGY_UNAVAILABLE, |
| 62 TECHNOLOGY_AVAILABLE, | 63 TECHNOLOGY_AVAILABLE, |
| 63 TECHNOLOGY_UNINITIALIZED, | 64 TECHNOLOGY_UNINITIALIZED, |
| 64 TECHNOLOGY_ENABLING, | 65 TECHNOLOGY_ENABLING, |
| 65 TECHNOLOGY_ENABLED | 66 TECHNOLOGY_ENABLED |
| 66 }; | 67 }; |
| 67 | 68 |
| 68 virtual ~NetworkStateHandler(); | 69 virtual ~NetworkStateHandler(); |
| 69 | 70 |
| 70 // Sets the global instance. Must be called before any calls to Get(). | |
| 71 static void Initialize(); | |
| 72 | |
| 73 // Returns true if the global instance has been initialized. | |
| 74 static bool IsInitialized(); | |
| 75 | |
| 76 // Destroys the global instance. | |
| 77 static void Shutdown(); | |
| 78 | |
| 79 // Gets the global instance. Initialize() must be called first. | |
| 80 static NetworkStateHandler* Get(); | |
| 81 | |
| 82 // Add/remove observers. | 71 // Add/remove observers. |
| 83 void AddObserver(NetworkStateHandlerObserver* observer); | 72 void AddObserver(NetworkStateHandlerObserver* observer); |
| 84 void RemoveObserver(NetworkStateHandlerObserver* observer); | 73 void RemoveObserver(NetworkStateHandlerObserver* observer); |
| 85 | 74 |
| 86 // Returns the state for technology |type|. kMatchTypeMobile (only) is | 75 // Returns the state for technology |type|. kMatchTypeMobile (only) is |
| 87 // also supported. | 76 // also supported. |
| 88 TechnologyState GetTechnologyState(const std::string& type) const; | 77 TechnologyState GetTechnologyState(const std::string& type) const; |
| 89 bool IsTechnologyEnabled(const std::string& type) const { | 78 bool IsTechnologyEnabled(const std::string& type) const { |
| 90 return GetTechnologyState(type) == TECHNOLOGY_ENABLED; | 79 return GetTechnologyState(type) == TECHNOLOGY_ENABLED; |
| 91 } | 80 } |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 173 // Set the user initiated connecting network. | 162 // Set the user initiated connecting network. |
| 174 void SetConnectingNetwork(const std::string& service_path); | 163 void SetConnectingNetwork(const std::string& service_path); |
| 175 | 164 |
| 176 const std::string& connecting_network() const { return connecting_network_; } | 165 const std::string& connecting_network() const { return connecting_network_; } |
| 177 | 166 |
| 178 // Generates a DictionaryValue of all NetworkState properties. Currently | 167 // Generates a DictionaryValue of all NetworkState properties. Currently |
| 179 // provided for debugging purposes only. | 168 // provided for debugging purposes only. |
| 180 void GetNetworkStatePropertiesForTest( | 169 void GetNetworkStatePropertiesForTest( |
| 181 base::DictionaryValue* dictionary) const; | 170 base::DictionaryValue* dictionary) const; |
| 182 | 171 |
| 172 // Construct and initialize an instance for testing. |
| 173 static NetworkStateHandler* InitializeForTest(); |
| 174 |
| 183 static const char kMatchTypeDefault[]; | 175 static const char kMatchTypeDefault[]; |
| 184 static const char kMatchTypeWireless[]; | 176 static const char kMatchTypeWireless[]; |
| 185 static const char kMatchTypeMobile[]; | 177 static const char kMatchTypeMobile[]; |
| 186 static const char kMatchTypeNonVirtual[]; | 178 static const char kMatchTypeNonVirtual[]; |
| 187 | 179 |
| 188 protected: | 180 protected: |
| 181 friend class NetworkHandler; |
| 189 NetworkStateHandler(); | 182 NetworkStateHandler(); |
| 190 | 183 |
| 191 // ShillPropertyHandler::Listener overrides. | 184 // ShillPropertyHandler::Listener overrides. |
| 192 | 185 |
| 193 // This adds new entries to the managed list specified by |type| and deletes | 186 // This adds new entries to the managed list specified by |type| and deletes |
| 194 // any entries that are no longer in the list. | 187 // any entries that are no longer in the list. |
| 195 virtual void UpdateManagedList(ManagedState::ManagedType type, | 188 virtual void UpdateManagedList(ManagedState::ManagedType type, |
| 196 const base::ListValue& entries) OVERRIDE; | 189 const base::ListValue& entries) OVERRIDE; |
| 197 | 190 |
| 198 // The list of profiles changed (i.e. a user has logged in). Re-request | 191 // The list of profiles changed (i.e. a user has logged in). Re-request |
| (...skipping 22 matching lines...) Expand all Loading... |
| 221 // Sends NetworkManagerChanged() to observers and logs an event. | 214 // Sends NetworkManagerChanged() to observers and logs an event. |
| 222 virtual void NotifyManagerPropertyChanged() OVERRIDE; | 215 virtual void NotifyManagerPropertyChanged() OVERRIDE; |
| 223 | 216 |
| 224 // Called by |shill_property_handler_| when the service or device list has | 217 // Called by |shill_property_handler_| when the service or device list has |
| 225 // changed and all entries have been updated. This updates the list and | 218 // changed and all entries have been updated. This updates the list and |
| 226 // notifies observers. If |type| == TYPE_NETWORK this also calls | 219 // notifies observers. If |type| == TYPE_NETWORK this also calls |
| 227 // CheckDefaultNetworkChanged(). | 220 // CheckDefaultNetworkChanged(). |
| 228 virtual void ManagedStateListChanged( | 221 virtual void ManagedStateListChanged( |
| 229 ManagedState::ManagedType type) OVERRIDE; | 222 ManagedState::ManagedType type) OVERRIDE; |
| 230 | 223 |
| 231 // Called in Initialize(). Called explicitly by tests after adding | 224 // Called after construction. Called explicitly by tests after adding |
| 232 // test observers. | 225 // test observers. |
| 233 void InitShillPropertyHandler(); | 226 void InitShillPropertyHandler(); |
| 234 | 227 |
| 235 private: | 228 private: |
| 236 typedef std::list<base::Closure> ScanCallbackList; | 229 typedef std::list<base::Closure> ScanCallbackList; |
| 237 typedef std::map<std::string, ScanCallbackList> ScanCompleteCallbackMap; | 230 typedef std::map<std::string, ScanCallbackList> ScanCompleteCallbackMap; |
| 238 friend class NetworkStateHandlerTest; | 231 friend class NetworkStateHandlerTest; |
| 239 FRIEND_TEST_ALL_PREFIXES(NetworkStateHandlerTest, NetworkStateHandlerStub); | 232 FRIEND_TEST_ALL_PREFIXES(NetworkStateHandlerTest, NetworkStateHandlerStub); |
| 240 | 233 |
| 241 // Non-const getters for managed entries. These are const so that they can | 234 // Non-const getters for managed entries. These are const so that they can |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 290 | 283 |
| 291 // Callbacks to run when a scan for the technology type completes. | 284 // Callbacks to run when a scan for the technology type completes. |
| 292 ScanCompleteCallbackMap scan_complete_callbacks_; | 285 ScanCompleteCallbackMap scan_complete_callbacks_; |
| 293 | 286 |
| 294 DISALLOW_COPY_AND_ASSIGN(NetworkStateHandler); | 287 DISALLOW_COPY_AND_ASSIGN(NetworkStateHandler); |
| 295 }; | 288 }; |
| 296 | 289 |
| 297 } // namespace chromeos | 290 } // namespace chromeos |
| 298 | 291 |
| 299 #endif // CHROMEOS_NETWORK_NETWORK_STATE_HANDLER_H_ | 292 #endif // CHROMEOS_NETWORK_NETWORK_STATE_HANDLER_H_ |
| OLD | NEW |