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