network_state_handler_observer.h revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
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 14namespace chromeos { 15 16class NetworkState; 17 18// Observer class for all network state changes, including changes to 19// active (connecting or connected) services. 20class CHROMEOS_EXPORT NetworkStateHandlerObserver { 21 public: 22 typedef std::vector<const NetworkState*> NetworkStateList; 23 24 NetworkStateHandlerObserver(); 25 virtual ~NetworkStateHandlerObserver(); 26 27 // Called when one or more network manager properties changes. 28 virtual void NetworkManagerChanged(); 29 30 // The list of networks changed. 31 virtual void NetworkListChanged(); 32 33 // The list of devices changed, or a property changed (e.g. scanning). 34 virtual void DeviceListChanged(); 35 36 // The default network changed (includes VPNs) or one of its properties 37 // changed. This won't be called if the WiFi signal strength property 38 // changes. If interested in those events, use NetworkPropertiesUpdated() 39 // below. 40 // |network| will be NULL if there is no longer a default network. 41 virtual void DefaultNetworkChanged(const NetworkState* network); 42 43 // The connection state of |network| changed. 44 virtual void NetworkConnectionStateChanged(const NetworkState* network); 45 46 // One or more properties of |network| have been updated. Note: this will get 47 // called in *addition* to NetworkConnectionStateChanged() when the 48 // connection state property changes. Use this to track properties like 49 // wifi strength. 50 virtual void NetworkPropertiesUpdated(const NetworkState* network); 51 52 private: 53 DISALLOW_COPY_AND_ASSIGN(NetworkStateHandlerObserver); 54}; 55 56} // namespace chromeos 57 58#endif // CHROMEOS_NETWORK_NETWORK_STATE_HANDLER_OBSERVER_H_ 59