📄 jni_funcs.h
字号:
/* * jni_funcs.h * Java Native Interface - Handles JNI function declarations. * * Copyright (c) 2004 * The Kaffe.org's developers. See ChangeLog for details. * * See the file "license.terms" for information on usage and redistribution * of this file. */#ifndef KAFFE_JNI_FUNCTIONS_H#define KAFFE_JNI_FUNCTIONS_H/* ====== Invokation API ============================================================= */jint KaffeJNI_DestroyJavaVM(JavaVM* vm);/* ====== Helpers =================================================================== */jmethodID KaffeJNI_FromReflectedMethod (JNIEnv *, jobject);jfieldID KaffeJNI_FromReflectedField (JNIEnv *, jobject);jobject KaffeJNI_ToReflectedMethod (JNIEnv *, jclass, jmethodID, jboolean);jobject KaffeJNI_ToReflectedField (JNIEnv *, jclass, jfieldID, jboolean);jobject KaffeJNI_NewDirectByteBuffer(JNIEnv *, void *, jlong);void * KaffeJNI_GetDirectBufferAddress(JNIEnv *, jobject);jlong KaffeJNI_GetDirectBufferCapacity(JNIEnv *, jobject);void NONRETURNING KaffeJNI_FatalError(JNIEnv* env, const char* mess);/* ====== String handling =========================================================== */void KaffeJNI_ReleaseStringChars(JNIEnv* env, jstring data, const jchar* chars);jstring KaffeJNI_NewString(JNIEnv* env, const jchar* data, jsize len);jsize KaffeJNI_GetStringLength(JNIEnv* env, jstring data);const jchar* KaffeJNI_GetStringChars(JNIEnv* env, jstring data, jboolean* copy);jstring KaffeJNI_NewStringUTF(JNIEnv* env, const char* data);jsize KaffeJNI_GetStringUTFLength(JNIEnv* env, jstring data);const char* KaffeJNI_GetStringUTFChars(JNIEnv* env, jstring data, jboolean* copy);void KaffeJNI_ReleaseStringUTFChars(JNIEnv* env, jstring data, const char* chars);void KaffeJNI_GetStringRegion(JNIEnv *env, jstring data, jsize start, jsize len, jchar *buf);void KaffeJNI_GetStringUTFRegion(JNIEnv *env, jstring data, jsize start, jsize len, char *buf);/* ====== Functions handling arrays ================================================= */jobject KaffeJNI_GetObjectArrayElement(JNIEnv* env, jobjectArray arr, jsize elem);void KaffeJNI_SetObjectArrayElement(JNIEnv* env, jobjectArray arr, jsize elem, jobject val);jobjectArray KaffeJNI_NewObjectArray(JNIEnv* env, jsize len, jclass cls, jobject init);jbooleanArray KaffeJNI_NewBooleanArray(JNIEnv* env, jsize len);jbyteArray KaffeJNI_NewByteArray(JNIEnv* env, jsize len);jcharArray KaffeJNI_NewCharArray(JNIEnv* env, jsize len);jshortArray KaffeJNI_NewShortArray(JNIEnv* env, jsize len);jintArray KaffeJNI_NewIntArray(JNIEnv* env, jsize len);jlongArray KaffeJNI_NewLongArray(JNIEnv* env, jsize len);jfloatArray KaffeJNI_NewFloatArray(JNIEnv* env, jsize len);jdoubleArray KaffeJNI_NewDoubleArray(JNIEnv* env, jsize len);jboolean* KaffeJNI_GetBooleanArrayElements(JNIEnv* env, jbooleanArray arr, jboolean* iscopy);jbyte* KaffeJNI_GetByteArrayElements(JNIEnv* env, jbyteArray arr, jboolean* iscopy);void* KaffeJNI_GetPrimitiveArrayCritical(JNIEnv* env, jarray arr, jboolean* iscopy);jchar* KaffeJNI_GetCharArrayElements(JNIEnv* env, jcharArray arr, jboolean* iscopy);jshort* KaffeJNI_GetShortArrayElements(JNIEnv* env, jshortArray arr, jboolean* iscopy);jint* KaffeJNI_GetIntArrayElements(JNIEnv* env, jintArray arr, jboolean* iscopy);jlong* KaffeJNI_GetLongArrayElements(JNIEnv* env, jlongArray arr, jboolean* iscopy);jfloat* KaffeJNI_GetFloatArrayElements(JNIEnv* env, jfloatArray arr, jboolean* iscopy);jdouble* KaffeJNI_GetDoubleArrayElements(JNIEnv* env, jdoubleArray arr, jboolean* iscopy);void KaffeJNI_ReleaseBooleanArrayElements(JNIEnv* env, jbooleanArray arr, jboolean* elems, jint mode);void KaffeJNI_ReleaseByteArrayElements(JNIEnv* env, jbyteArray arr, jbyte* elems, jint mode);void KaffeJNI_ReleasePrimitiveArrayCritical(JNIEnv* env, jbyteArray arr, void* elems, jint mode);void KaffeJNI_ReleaseCharArrayElements(JNIEnv* env, jcharArray arr, jchar* elems, jint mode);void KaffeJNI_ReleaseShortArrayElements(JNIEnv* env, jshortArray arr, jshort* elems, jint mode);void KaffeJNI_ReleaseIntArrayElements(JNIEnv* env, jintArray arr, jint* elems, jint mode);void KaffeJNI_ReleaseLongArrayElements(JNIEnv* env, jlongArray arr, jlong* elems, jint mode);void KaffeJNI_ReleaseFloatArrayElements(JNIEnv* env, jfloatArray arr, jfloat* elems, jint mode);void KaffeJNI_ReleaseDoubleArrayElements(JNIEnv* env, jdoubleArray arr, jdouble* elems, jint mode);void KaffeJNI_GetBooleanArrayRegion(JNIEnv* env, jbooleanArray arr, jsize start, jsize len, jboolean* data);void KaffeJNI_GetByteArrayRegion(JNIEnv* env, jbyteArray arr, jsize start, jsize len, jbyte* data);void KaffeJNI_GetCharArrayRegion(JNIEnv* env, jcharArray arr, jsize start, jsize len, jchar* data);void KaffeJNI_GetShortArrayRegion(JNIEnv* env, jshortArray arr, jsize start, jsize len, jshort* data);void KaffeJNI_GetIntArrayRegion(JNIEnv* env, jintArray arr, jsize start, jsize len, jint* data);void KaffeJNI_GetLongArrayRegion(JNIEnv* env, jlongArray arr, jsize start, jsize len, jlong* data);void KaffeJNI_GetFloatArrayRegion(JNIEnv* env, jfloatArray arr, jsize start, jsize len, jfloat* data);void KaffeJNI_GetDoubleArrayRegion(JNIEnv* env, jdoubleArray arr, jsize start, jsize len, jdouble* data);void KaffeJNI_SetBooleanArrayRegion(JNIEnv* env, jbooleanArray arr, jsize start, jsize len, jboolean* data);void KaffeJNI_SetByteArrayRegion(JNIEnv* env, jbyteArray arr, jsize start, jsize len, jbyte* data);void KaffeJNI_SetCharArrayRegion(JNIEnv* env, jcharArray arr, jsize start, jsize len, jchar* data);void KaffeJNI_SetShortArrayRegion(JNIEnv* env, jshortArray arr, jsize start, jsize len, jshort* data);void KaffeJNI_SetIntArrayRegion(JNIEnv* env, jintArray arr, jsize start, jsize len, jint* data);void KaffeJNI_SetLongArrayRegion(JNIEnv* env, jlongArray arr, jsize start, jsize len, jlong* data);void KaffeJNI_SetFloatArrayRegion(JNIEnv* env, jfloatArray arr, jsize start, jsize len, jfloat* data);void KaffeJNI_SetDoubleArrayRegion(JNIEnv* env, jdoubleArray arr, jsize start, jsize len, jdouble* data);/* ====== Functions to get fields =================================================== */jobject KaffeJNI_GetObjectField(JNIEnv* env, jobject obj, jfieldID fld);jboolean KaffeJNI_GetBooleanField(JNIEnv* env, jobject obj, jfieldID fld);jbyte KaffeJNI_GetByteField(JNIEnv* env, jobject obj, jfieldID fld);jchar KaffeJNI_GetCharField(JNIEnv* env, jobject obj, jfieldID fld);jshort KaffeJNI_GetShortField(JNIEnv* env, jobject obj, jfieldID fld);jint KaffeJNI_GetIntField(JNIEnv* env, jobject obj, jfieldID fld);jlong KaffeJNI_GetLongField(JNIEnv* env, jobject obj, jfieldID fld);jfloat KaffeJNI_GetFloatField(JNIEnv* env, jobject obj, jfieldID fld);jdouble KaffeJNI_GetDoubleField(JNIEnv* env, jobject obj, jfieldID fld);/* ====== Functions to set fields =================================================== */void KaffeJNI_SetObjectField(JNIEnv* env, jobject obj, jfieldID fld, jobject val);void KaffeJNI_SetBooleanField(JNIEnv* env, jobject obj, jfieldID fld, jboolean val);void KaffeJNI_SetByteField(JNIEnv* env, jobject obj, jfieldID fld, jbyte val);void KaffeJNI_SetCharField(JNIEnv* env, jobject obj, jfieldID fld, jchar val);void KaffeJNI_SetShortField(JNIEnv* env, jobject obj, jfieldID fld, jshort val);void KaffeJNI_SetIntField(JNIEnv* env, jobject obj, jfieldID fld, jint val);void KaffeJNI_SetLongField(JNIEnv* env, jobject obj, jfieldID fld, jlong val);void KaffeJNI_SetFloatField(JNIEnv* env, jobject obj, jfieldID fld, jfloat val);void KaffeJNI_SetDoubleField(JNIEnv* env, jobject obj, jfieldID fld, jdouble val);/* ====== Functions to get static fields ============================================ */jobject KaffeJNI_GetStaticObjectField(JNIEnv* env, jclass cls, jfieldID fld);jboolean KaffeJNI_GetStaticBooleanField(JNIEnv* env, jclass cls, jfieldID fld);jbyte KaffeJNI_GetStaticByteField(JNIEnv* env, jclass cls, jfieldID fld);jchar KaffeJNI_GetStaticCharField(JNIEnv* env, jclass cls, jfieldID fld);jshort KaffeJNI_GetStaticShortField(JNIEnv* env, jclass cls, jfieldID fld);jint KaffeJNI_GetStaticIntField(JNIEnv* env, jclass cls, jfieldID fld);jlong KaffeJNI_GetStaticLongField(JNIEnv* env, jclass cls, jfieldID fld);jfloat KaffeJNI_GetStaticFloatField(JNIEnv* env, jclass cls, jfieldID fld);jdouble KaffeJNI_GetStaticDoubleField(JNIEnv* env, jclass cls, jfieldID fld);/* ====== Functions to set static fields ============================================ */void KaffeJNI_SetStaticObjectField(JNIEnv* env, jclass cls, jfieldID fld, jobject val);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -