logging_network_change_observer.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // Copyright (c) 2016 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. #ifndef NET_BASE_LOGGING_NETWORK_CHANGE_OBSERVER_H_
  5. #define NET_BASE_LOGGING_NETWORK_CHANGE_OBSERVER_H_
  6. #include "base/memory/raw_ptr.h"
  7. #include "net/base/net_export.h"
  8. #include "net/base/network_change_notifier.h"
  9. #include "net/base/network_handle.h"
  10. namespace net {
  11. class NetLog;
  12. // A class that adds NetLog events for network change events coming from the
  13. // net::NetworkChangeNotifier.
  14. class NET_EXPORT LoggingNetworkChangeObserver
  15. : public NetworkChangeNotifier::IPAddressObserver,
  16. public NetworkChangeNotifier::ConnectionTypeObserver,
  17. public NetworkChangeNotifier::NetworkChangeObserver,
  18. public NetworkChangeNotifier::NetworkObserver {
  19. public:
  20. // Note: |net_log| must remain valid throughout the lifetime of this
  21. // LoggingNetworkChangeObserver.
  22. explicit LoggingNetworkChangeObserver(NetLog* net_log);
  23. LoggingNetworkChangeObserver(const LoggingNetworkChangeObserver&) = delete;
  24. LoggingNetworkChangeObserver& operator=(const LoggingNetworkChangeObserver&) =
  25. delete;
  26. ~LoggingNetworkChangeObserver() override;
  27. private:
  28. // NetworkChangeNotifier::IPAddressObserver implementation.
  29. void OnIPAddressChanged() override;
  30. // NetworkChangeNotifier::ConnectionTypeObserver implementation.
  31. void OnConnectionTypeChanged(
  32. NetworkChangeNotifier::ConnectionType type) override;
  33. // NetworkChangeNotifier::NetworkChangeObserver implementation.
  34. void OnNetworkChanged(NetworkChangeNotifier::ConnectionType type) override;
  35. // NetworkChangeNotifier::NetworkObserver implementation.
  36. void OnNetworkConnected(handles::NetworkHandle network) override;
  37. void OnNetworkDisconnected(handles::NetworkHandle network) override;
  38. void OnNetworkSoonToDisconnect(handles::NetworkHandle network) override;
  39. void OnNetworkMadeDefault(handles::NetworkHandle network) override;
  40. raw_ptr<NetLog> net_log_;
  41. };
  42. } // namespace net
  43. #endif // NET_BASE_LOGGING_NETWORK_CHANGE_OBSERVER_H_