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 3 // found in the LICENSE file. 4 5 #ifndef CHROMEOS_NETWORK_NETWORK_STATE_HANDLER_OBSERVER_H_ 6 #define CHROMEOS_NETWORK_NETWORK_STATE_HANDLER_OBSERVER_H_ 7 8 #include <string> 9 #include <vector> 10 11 #include "base/basictypes.h" 12 #include "chromeos/chromeos_export.h" 13 14 namespace chromeos { 15 16 class DeviceState; 17 class NetworkState; 18 19 // Observer class for all network state changes, including changes to 20 // active (connecting or connected) services. 21 class CHROMEOS_EXPORT NetworkStateHandlerObserver { 22 public: 23 NetworkStateHandlerObserver(); 24 virtual ~NetworkStateHandlerObserver(); 25 26 // The list of networks changed. 27 virtual void NetworkListChanged(); 28 29 // The list of devices changed, or a property changed (e.g. scanning). 30 virtual void DeviceListChanged(); 31 32 // The default network changed (includes VPNs) or one of its properties 33 // changed. This won't be called if the WiFi signal strength property 34 // changes. If interested in those events, use NetworkPropertiesUpdated() 35 // below. 36 // |network| will be NULL if there is no longer a default network. 37 virtual void DefaultNetworkChanged(const NetworkState* network); 38 39 // The connection state of |network| changed. 40 virtual void NetworkConnectionStateChanged(const NetworkState* network); 41 42 // One or more properties of |network| have been updated. Note: this will get 43 // called in *addition* to NetworkConnectionStateChanged() when the 44 // connection state property changes. Use this to track properties like 45 // wifi strength. 46 virtual void NetworkPropertiesUpdated(const NetworkState* network); 47 48 // One or more properties of |device| have been updated. 49 virtual void DevicePropertiesUpdated(const DeviceState* device); 50 51 // Called just before NetworkStateHandler is destroyed so that observers 52 // can safely stop observing. 53 virtual void IsShuttingDown(); 54 55 private: 56 DISALLOW_COPY_AND_ASSIGN(NetworkStateHandlerObserver); 57 }; 58 59 } // namespace chromeos 60 61 #endif // CHROMEOS_NETWORK_NETWORK_STATE_HANDLER_OBSERVER_H_ 62