Index: webrtc/base/networkmonitor.h |
diff --git a/webrtc/base/networkmonitor.h b/webrtc/base/networkmonitor.h |
index c45c81704072774497facdbf7821121dbd5a76d9..53c1ceef1f021d13e4bca88db14581169ba09620 100644 |
--- a/webrtc/base/networkmonitor.h |
+++ b/webrtc/base/networkmonitor.h |
@@ -15,8 +15,32 @@ |
#include "webrtc/base/scoped_ptr.h" |
#include "webrtc/base/sigslot.h" |
#include "webrtc/base/thread.h" |
+//#include "webrtc/base/network.h" |
namespace rtc { |
+ |
+enum NetworkType { |
+ NETWORK_UNKNOWN, |
+ NETWORK_ETHERNET, |
+ NETWORK_WIFI, |
+ NETWORK_4G, |
+ NETWORK_3G, |
+ NETWORK_2G, |
+ NETWORK_BLUETOOTH, |
+ NETWORK_NONE |
+}; |
+ |
+struct NetworkInformation { |
+ std::string interface_name; |
+ uint32_t handle; |
+ NetworkType type; |
+ /* NetworkInformation(std::string& if_name, uint32_t net_handle, AdapterType |
+ net_type) { |
+ interface_name = if_name; |
+ handle = net_handle; |
+ type = net_type; |
+ }*/ |
+}; |
/* |
* Receives network-change events via |OnNetworksChanged| and signals the |
* networks changed event. |
@@ -42,9 +66,13 @@ class NetworkMonitorInterface { |
virtual ~NetworkMonitorInterface(); |
sigslot::signal0<> SignalNetworksChanged; |
+ sigslot::signal1<const NetworkInformation&> SignalNetworkAvailable; |
virtual void Start() = 0; |
virtual void Stop() = 0; |
+ virtual bool GetAllNetworkInfos( |
+ std::vector<NetworkInformation>* net_infos) = 0; |
+ virtual void OnNetworkAvailable(const NetworkInformation& network_info) = 0; |
// Implementations should call this method on the base when networks change, |
// and the base will fire SignalNetworksChanged on the right thread. |
@@ -58,11 +86,15 @@ class NetworkMonitorBase : public NetworkMonitorInterface, |
NetworkMonitorBase(); |
~NetworkMonitorBase() override; |
+ bool GetAllNetworkInfos(std::vector<NetworkInformation>* net_infos) override; |
+ |
void OnNetworksChanged() override; |
+ void OnNetworkAvailable(const NetworkInformation& network_info) override; |
void OnMessage(Message* msg) override; |
private: |
+ void OnNetworkAvailable_w(const NetworkInformation& network_info); |
Thread* thread_; |
}; |