network_state_handler_observer.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
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 its connection state
37  // changed. |network| will be NULL if there is no longer a default network.
38  virtual void DefaultNetworkChanged(const NetworkState* network);
39
40  // The connection state of |network| changed.
41  virtual void NetworkConnectionStateChanged(const NetworkState* network);
42
43  // One or more properties of |network| have been updated. Note: this will get
44  // called in *addition* to NetworkConnectionStateChanged() when the
45  // connection state property changes. Use this to track properties like
46  // wifi strength.
47  virtual void NetworkPropertiesUpdated(const NetworkState* network);
48
49 private:
50  DISALLOW_COPY_AND_ASSIGN(NetworkStateHandlerObserver);
51};
52
53}  // namespace chromeos
54
55#endif  // CHROMEOS_NETWORK_NETWORK_STATE_HANDLER_OBSERVER_H_
56