Index: net/android/network_change_notifier_delegate_android.h |
diff --git a/net/android/network_change_notifier_delegate_android.h b/net/android/network_change_notifier_delegate_android.h |
index 9f5caa44167656ac279c519a50a69e46f4d0263f..fa01c05fb6c6c654a1c8bcd642bc7bea10187ba9 100644 |
--- a/net/android/network_change_notifier_delegate_android.h |
+++ b/net/android/network_change_notifier_delegate_android.h |
@@ -9,6 +9,7 @@ |
#include "base/basictypes.h" |
#include "base/memory/ref_counted.h" |
#include "base/observer_list_threadsafe.h" |
+#include "base/synchronization/lock.h" |
#include "base/threading/thread_checker.h" |
#include "net/base/network_change_notifier.h" |
@@ -21,6 +22,8 @@ namespace net { |
// unless otherwise stated (e.g. AddObserver()/RemoveObserver()). |
class NET_EXPORT_PRIVATE NetworkChangeNotifierDelegateAndroid { |
public: |
+ typedef NetworkChangeNotifier::ConnectionType ConnectionType; |
+ |
enum ConnectivityState { |
OFFLINE, |
ONLINE, |
@@ -50,6 +53,10 @@ class NET_EXPORT_PRIVATE NetworkChangeNotifierDelegateAndroid { |
jint new_connection_type); |
jint GetConnectionType(JNIEnv* env, jobject obj) const; |
+ // Same as above but meant to be called by NetworkChangeNotifierAndroid from |
+ // any thread. |
Ryan Sleevi
2012/12/19 18:07:57
This comment is confusing and would need to be re-
|
+ ConnectionType GetCurrentConnectionType() const; |
+ |
// These methods can be called on any thread. Note that the provided observer |
// will be notified on the thread AddObserver() is called on. |
void AddObserver(Observer* observer); |
@@ -64,12 +71,13 @@ class NET_EXPORT_PRIVATE NetworkChangeNotifierDelegateAndroid { |
private: |
friend class NetworkChangeNotifierDelegateAndroidTest; |
- typedef NetworkChangeNotifier::ConnectionType ConnectionType; |
+ void SetConnectionType(ConnectionType new_connection_type); |
base::ThreadChecker thread_checker_; |
scoped_refptr<ObserverListThreadSafe<Observer> > observers_; |
scoped_refptr<base::SingleThreadTaskRunner> jni_task_runner_; |
base::android::ScopedJavaGlobalRef<jobject> java_network_change_notifier_; |
+ mutable base::Lock connection_type_lock_; // Protects the state below. |
ConnectionType connection_type_; |
DISALLOW_COPY_AND_ASSIGN(NetworkChangeNotifierDelegateAndroid); |