Index: net/android/network_change_notifier_android.h |
diff --git a/net/android/network_change_notifier_android.h b/net/android/network_change_notifier_android.h |
index 2824600964cc4fa7066e38f005f24a7e1e4d7565..f5311ac9bc60abfd2f011c72797b83a9f111d0a3 100644 |
--- a/net/android/network_change_notifier_android.h |
+++ b/net/android/network_change_notifier_android.h |
@@ -8,6 +8,7 @@ |
#include "base/android/scoped_java_ref.h" |
#include "base/basictypes.h" |
#include "base/compiler_specific.h" |
+#include "base/synchronization/lock.h" |
#include "net/base/network_change_notifier.h" |
namespace net { |
@@ -16,23 +17,35 @@ class NetworkChangeNotifierAndroidTest; |
class NetworkChangeNotifierAndroid : public NetworkChangeNotifier { |
public: |
- NetworkChangeNotifierAndroid(); |
virtual ~NetworkChangeNotifierAndroid(); |
- void NotifyObserversOfConnectionTypeChange(JNIEnv* env, jobject obj); |
+ // Called from Java on the UI thread. |
+ void NotifyObserversOfConnectionTypeChange( |
+ JNIEnv* env, jobject obj, jint new_connection_type); |
+ jint GetConnectionType(JNIEnv* env, jobject obj); |
static bool Register(JNIEnv* env); |
private: |
friend class NetworkChangeNotifierAndroidTest; |
+ friend class NetworkChangeNotifierFactoryAndroid; |
- // NetworkChangeNotifier: |
- virtual NetworkChangeNotifier::ConnectionType |
- GetCurrentConnectionType() const OVERRIDE; |
+ NetworkChangeNotifierAndroid(); |
+ |
+ void SetConnectionType(int connection_type); |
void ForceConnectivityState(bool state); |
+ // NetworkChangeNotifier: |
+ virtual ConnectionType GetCurrentConnectionType() const OVERRIDE; |
+ |
base::android::ScopedJavaGlobalRef<jobject> java_network_change_notifier_; |
+ // TODO(pliard): http://crbug.com/150867. Use an atomic integer for the |
+ // connection type without the lock once a non-subtle atomic integer is |
+ // available under base/. That might never happen though. |
+ mutable base::Lock lock_; // Protects the state below. |
+ // Written from the UI thread, read from any thread. |
+ int connection_type_; |
DISALLOW_COPY_AND_ASSIGN(NetworkChangeNotifierAndroid); |
}; |