Index: webrtc/base/network.h |
diff --git a/webrtc/base/network.h b/webrtc/base/network.h |
index f365a7877262ed30c149daa15bfcf63bf07eac0a..e467979aea9b3c4747f42a21abc70d434ac3b0a0 100644 |
--- a/webrtc/base/network.h |
+++ b/webrtc/base/network.h |
@@ -29,6 +29,7 @@ struct ifaddrs; |
namespace rtc { |
class Network; |
+class NetworkChangeNotifier; |
class Thread; |
enum AdapterType { |
@@ -147,7 +148,6 @@ class NetworkManagerBase : public NetworkManager { |
private: |
friend class NetworkTest; |
- void DoUpdateNetworks(); |
EnumerationPermission enumeration_permission_; |
@@ -164,7 +164,8 @@ class NetworkManagerBase : public NetworkManager { |
// Basic implementation of the NetworkManager interface that gets list |
// of networks using OS APIs. |
class BasicNetworkManager : public NetworkManagerBase, |
- public MessageHandler { |
+ public MessageHandler, |
+ public sigslot::has_slots<> { |
public: |
BasicNetworkManager(); |
~BasicNetworkManager() override; |
@@ -222,6 +223,16 @@ class BasicNetworkManager : public NetworkManagerBase, |
private: |
friend class NetworkTest; |
+ // Creates the network change notifier and starts to listen to the update. |
+ void StartNetworkChangeNotifier(); |
+ // Removes the network change notifier. |
+ void StopNetworkChangeNotifier(); |
+ // Called when it receives the update from the network change notifier. |
+ void OnNetworkChangeNotified(); |
+ |
+ // Updates the network and reschedule the next update. |
+ void UpdateNetworks(); |
+ // Only updates the network; do not reschedule the next update. |
pthatcher1
2015/10/09 23:11:29
do not => does not
honghaiz3
2015/10/13 23:19:56
Done.
|
void DoUpdateNetworks(); |
pthatcher1
2015/10/09 23:11:29
I think a better name pair would be UpdateNetworks
honghaiz3
2015/10/13 23:19:56
Done.
|
Thread* thread_; |
@@ -230,6 +241,7 @@ class BasicNetworkManager : public NetworkManagerBase, |
std::vector<std::string> network_ignore_list_; |
int network_ignore_mask_; |
bool ignore_non_default_routes_; |
+ scoped_ptr<NetworkChangeNotifier> network_change_notifier_; |
}; |
// Represents a Unix-type network interface, with a name and single address. |