12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- // Copyright (c) 2016 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef NET_BASE_LOGGING_NETWORK_CHANGE_OBSERVER_H_
- #define NET_BASE_LOGGING_NETWORK_CHANGE_OBSERVER_H_
- #include "base/memory/raw_ptr.h"
- #include "net/base/net_export.h"
- #include "net/base/network_change_notifier.h"
- #include "net/base/network_handle.h"
- namespace net {
- class NetLog;
- // A class that adds NetLog events for network change events coming from the
- // net::NetworkChangeNotifier.
- class NET_EXPORT LoggingNetworkChangeObserver
- : public NetworkChangeNotifier::IPAddressObserver,
- public NetworkChangeNotifier::ConnectionTypeObserver,
- public NetworkChangeNotifier::NetworkChangeObserver,
- public NetworkChangeNotifier::NetworkObserver {
- public:
- // Note: |net_log| must remain valid throughout the lifetime of this
- // LoggingNetworkChangeObserver.
- explicit LoggingNetworkChangeObserver(NetLog* net_log);
- LoggingNetworkChangeObserver(const LoggingNetworkChangeObserver&) = delete;
- LoggingNetworkChangeObserver& operator=(const LoggingNetworkChangeObserver&) =
- delete;
- ~LoggingNetworkChangeObserver() override;
- private:
- // NetworkChangeNotifier::IPAddressObserver implementation.
- void OnIPAddressChanged() override;
- // NetworkChangeNotifier::ConnectionTypeObserver implementation.
- void OnConnectionTypeChanged(
- NetworkChangeNotifier::ConnectionType type) override;
- // NetworkChangeNotifier::NetworkChangeObserver implementation.
- void OnNetworkChanged(NetworkChangeNotifier::ConnectionType type) override;
- // NetworkChangeNotifier::NetworkObserver implementation.
- void OnNetworkConnected(handles::NetworkHandle network) override;
- void OnNetworkDisconnected(handles::NetworkHandle network) override;
- void OnNetworkSoonToDisconnect(handles::NetworkHandle network) override;
- void OnNetworkMadeDefault(handles::NetworkHandle network) override;
- raw_ptr<NetLog> net_log_;
- };
- } // namespace net
- #endif // NET_BASE_LOGGING_NETWORK_CHANGE_OBSERVER_H_
|