forked from gmp/jni
		
	Documentation.
This commit is contained in:
		
							parent
							
								
									e40e34d1e6
								
							
						
					
					
						commit
						afef4e65f6
					
				
							
								
								
									
										28
									
								
								jni.go
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								jni.go
									
									
									
									
									
								
							|  | @ -43,12 +43,21 @@ type ( | |||
| 	Value     uint64 // All JNI types fit into 64-bits.
 | ||||
| ) | ||||
| 
 | ||||
| const ( | ||||
| 	TRUE = C.JNI_TRUE | ||||
| 	FALSE = C.JNI_FALSE | ||||
| ) | ||||
| 
 | ||||
| // JVMFor creates a JVM object, interpreting the given uintptr as a pointer
 | ||||
| // to a C.JavaVM object.
 | ||||
| func JVMFor(jvmPtr uintptr) JVM { | ||||
| 	return JVM{ | ||||
| 		jvm: (*C.JavaVM)(unsafe.Pointer(jvmPtr)), | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| // EnvFor creates an Env object, interpreting the given uintptr as a pointer
 | ||||
| // to a C.JNIEnv object.
 | ||||
| func EnvFor(envPtr uintptr) Env { | ||||
| 	return Env{ | ||||
| 		env: (*C.JNIEnv)(unsafe.Pointer(envPtr)), | ||||
|  | @ -81,18 +90,22 @@ func varArgs(args []Value) *C.jvalue { | |||
| 	return (*C.jvalue)(unsafe.Pointer(&args[0])) | ||||
| } | ||||
| 
 | ||||
| // IsSameObject returns true if the two given objects refer to the same
 | ||||
| // Java object.
 | ||||
| func IsSameObject(e Env, ref1, ref2 Object) bool { | ||||
| 	same := C._jni_IsSameObject(e.env, C.jobject(ref1), C.jobject(ref2)) | ||||
| 	return same == C.JNI_TRUE | ||||
| } | ||||
| 
 | ||||
| // CallStaticIntMethod calls a static method on a Java class, returning an int.
 | ||||
| func CallStaticIntMethod(e Env, cls Class, method MethodID, args ...Value) (int, error) { | ||||
| 	res := C._jni_CallStaticIntMethodA(e.env, C.jclass(cls), C.jmethodID(method), varArgs(args)) | ||||
| 	return int(res), exception(e) | ||||
| } | ||||
| 
 | ||||
| // FindClass finds a class with a given name, using the JVM's default
 | ||||
| // class loader.
 | ||||
| // FindClass returns a reference to a Java class with a given name, using the
 | ||||
| // JVM's default class loader. Any exceptions caused by the underlying JNI call
 | ||||
| // (for example if the class is not found) will result in a panic.
 | ||||
| func FindClass(e Env, name string) Class { | ||||
| 	mname := C.CString(name) | ||||
| 	defer C.free(unsafe.Pointer(mname)) | ||||
|  | @ -103,33 +116,40 @@ func FindClass(e Env, name string) Class { | |||
| 	return Class(res) | ||||
| } | ||||
| 
 | ||||
| // NewObject creates a new object given a class, initializer methodID, and
 | ||||
| // arguments (if any).
 | ||||
| // NewObject creates a new object given a class, initializer method, and
 | ||||
| // initializer arguments (if any).
 | ||||
| func NewObject(e Env, cls Class, method MethodID, args ...Value) (Object, error) { | ||||
| 	res := C._jni_NewObjectA(e.env, C.jclass(cls), C.jmethodID(method), varArgs(args)) | ||||
| 	return Object(res), exception(e) | ||||
| } | ||||
| 
 | ||||
| // CallStaticVoidMethod calls a static method on a Java class, returning
 | ||||
| // nothing.
 | ||||
| func CallStaticVoidMethod(e Env, cls Class, method MethodID, args ...Value) error { | ||||
| 	C._jni_CallStaticVoidMethodA(e.env, C.jclass(cls), C.jmethodID(method), varArgs(args)) | ||||
| 	return exception(e) | ||||
| } | ||||
| 
 | ||||
| // CallVoidMethod calls a method on an object, returning nothing.
 | ||||
| func CallVoidMethod(e Env, obj Object, method MethodID, args ...Value) error { | ||||
| 	C._jni_CallVoidMethodA(e.env, C.jobject(obj), C.jmethodID(method), varArgs(args)) | ||||
| 	return exception(e) | ||||
| } | ||||
| 
 | ||||
| // CallStaticObjectMethod calls a static method on a class, returning a
 | ||||
| // Java object
 | ||||
| func CallStaticObjectMethod(e Env, cls Class, method MethodID, args ...Value) (Object, error) { | ||||
| 	res := C._jni_CallStaticObjectMethodA(e.env, C.jclass(cls), C.jmethodID(method), varArgs(args)) | ||||
| 	return Object(res), exception(e) | ||||
| } | ||||
| 
 | ||||
| // CallObjectMethod calls a method on an object, returning a Java object.
 | ||||
| func CallObjectMethod(e Env, obj Object, method MethodID, args ...Value) (Object, error) { | ||||
| 	res := C._jni_CallObjectMethodA(e.env, C.jobject(obj), C.jmethodID(method), varArgs(args)) | ||||
| 	return Object(res), exception(e) | ||||
| } | ||||
| 
 | ||||
| // CallIntMethod calls a method on an object, returning an int32.
 | ||||
| func CallIntMethod(e Env, obj Object, method MethodID, args ...Value) (int32, error) { | ||||
| 	res := C._jni_CallIntMethodA(e.env, C.jobject(obj), C.jmethodID(method), varArgs(args)) | ||||
| 	return int32(res), exception(e) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user