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