Index: base/android/jni_android.h |
diff --git a/base/android/jni_android.h b/base/android/jni_android.h |
index a5571e023fb87060a3b410d18eccb7124135fad9..d438096db16f54c4e9e9ea429193e72e497ea770 100644 |
--- a/base/android/jni_android.h |
+++ b/base/android/jni_android.h |
@@ -26,13 +26,45 @@ void InitVM(JavaVM* vm); |
// Initializes the global application context object. The |context| can be any |
// valid reference to the application context. Internally holds a global ref to |
// the context. InitVM and InitApplicationContext maybe called in either order. |
-// TODO: We might combine InitVM() and InitApplicationContext() into one method. |
void InitApplicationContext(const JavaRef<jobject>& context); |
// Gets a global ref to the application context set with |
// InitApplicationContext(). Ownership is retained by the function - the caller |
// must NOT release it. |
-jobject GetApplicationContext(); |
+const jobject GetApplicationContext(); |
+ |
+// Finds the class named |class_name| and returns it. |
+// Use this method instead of invoking directly the JNI FindClass method (to |
+// prevent leaking local references). |
+// This method triggers a fatal assertion if the class could not be found. |
+// Use HasClass if you need to check whether the class exists. |
+ScopedJavaLocalRef<jclass> GetClass(JNIEnv* env, const char* class_name); |
+ |
+// Returns true iff the class |class_name| could be found. |
+bool HasClass(JNIEnv* env, const char* class_name); |
+ |
+// Returns the method ID for the method with the specified name and signature. |
+// This method triggers a fatal assertion if the method could not be found. |
+// Use HasMethod if you need to check whether a method exists. |
+jmethodID GetMethodID(JNIEnv* env, |
+ const JavaRef<jclass>& clazz, |
+ const char* method_name, |
+ const char* jni_signature); |
+ |
+// Returns the method ID for the static method with the specified name and |
+// signature. |
+// This method triggers a fatal assertion if the method could not be found. |
+// Use HasMethod if you need to check whether a method exists. |
+jmethodID GetStaticMethodID(JNIEnv* env, |
+ const JavaRef<jclass>& clazz, |
+ const char* method_name, |
+ const char* jni_signature); |
+ |
+// Returns true iff |clazz| has a method with the specified name and signature. |
+bool HasMethod(JNIEnv* env, |
+ const JavaRef<jclass>& clazz, |
+ const char* method_name, |
+ const char* jni_signature); |
// Gets the method ID from the class name. Clears the pending Java exception |
// and returns NULL if the method is not found. Caches results. Note that |
@@ -46,30 +78,36 @@ jmethodID GetMethodIDFromClassName(JNIEnv* env, |
const char* method, |
const char* jni_signature); |
-// Get the method ID for a method. Will clear the pending Java |
-// exception and return 0 if the method is not found. |
-jmethodID GetMethodID(JNIEnv* env, |
- jclass clazz, |
- const char* const method, |
- const char* const jni_signature); |
- |
-// Get the method ID for a class static method. Will clear the pending Java |
-// exception and return 0 if the method is not found. |
-jmethodID GetStaticMethodID(JNIEnv* env, |
- jclass clazz, |
- const char* const method, |
- const char* const jni_signature); |
- |
-// Gets the field ID for a class field. Clears the pending Java exception and |
-// returns NULL if the field is not found. |
+// Gets the field ID for a class field. |
+// This method triggers a fatal assertion if the field could not be found. |
jfieldID GetFieldID(JNIEnv* env, |
- jclass clazz, |
- const char* field, |
+ const JavaRef<jclass>& clazz, |
+ const char* field_name, |
const char* jni_signature); |
-// Returns true if an exception is pending in the provided JNIEnv*. If an |
-// exception is pending, this function prints and then clears it. |
-bool CheckException(JNIEnv* env); |
+// Returns true if |clazz| as a field with the given name and signature. |
+// TODO(jcivelli): Determine whether we explicitly have to pass the environment. |
+bool HasField(JNIEnv* env, |
+ const JavaRef<jclass>& clazz, |
+ const char* field_name, |
+ const char* jni_signature); |
+ |
+// Gets the field ID for a static class field. |
+// This method triggers a fatal assertion if the field could not be found. |
+jfieldID GetStaticFieldID(JNIEnv* env, |
+ const JavaRef<jclass>& clazz, |
+ const char* field_name, |
+ const char* jni_signature); |
+ |
+// Returns true if an exception is pending in the provided JNIEnv*. |
+bool HasException(JNIEnv* env); |
+ |
+// If an exception is pending in the provided JNIEnv*, this function clears it |
+// and returns true. |
+bool ClearException(JNIEnv* env); |
+ |
+// This function will call CHECK() macro if there's any pending exception. |
+void CheckException(JNIEnv* env); |
} // namespace android |
} // namespace base |