kni.h

来自「This is a resource based on j2me embedde」· C头文件 代码 · 共 500 行 · 第 1/2 页

H
500
字号
KNIEXPORT void     KNI_SetIntField(jobject objectHandle, jfieldID fieldID,                       jint value);KNIEXPORT void     KNI_SetLongField(jobject objectHandle, jfieldID fieldID,                       jlong value);KNIEXPORT void     KNI_SetFloatField(jobject objectHandle, jfieldID fieldID,                       jfloat value);KNIEXPORT void     KNI_SetDoubleField(jobject objectHandle, jfieldID fieldID,                       jdouble value);KNIEXPORT void     KNI_SetObjectField(jobject objectHandle, jfieldID fieldID,                       jobject fromHandle);/** * Static field access */KNIEXPORT jboolean KNI_GetStaticBooleanField(jclass classHandle,                       jfieldID fieldID);KNIEXPORT jbyte    KNI_GetStaticByteField(jclass classHandle,                       jfieldID fieldID);KNIEXPORT jchar    KNI_GetStaticCharField(jclass classHandle,                       jfieldID fieldID);KNIEXPORT jshort   KNI_GetStaticShortField(jclass classHandle,                       jfieldID fieldID);KNIEXPORT jint     KNI_GetStaticIntField(jclass classHandle, jfieldID fieldID);KNIEXPORT jlong    KNI_GetStaticLongField(jclass classHandle,                       jfieldID fieldID);KNIEXPORT jfloat   KNI_GetStaticFloatField(jclass classHandle,                       jfieldID fieldID);KNIEXPORT jdouble  KNI_GetStaticDoubleField(jclass classHandle,                       jfieldID fieldID);KNIEXPORT void     KNI_GetStaticObjectField(jclass classHandle,                       jfieldID fieldID, jobject toHandle);KNIEXPORT void     KNI_SetStaticBooleanField(jclass classHandle,                       jfieldID fieldID, jboolean value);KNIEXPORT void     KNI_SetStaticByteField(jclass classHandle,                       jfieldID fieldID, jbyte value);KNIEXPORT void     KNI_SetStaticCharField(jclass classHandle,                       jfieldID fieldID, jchar value);KNIEXPORT void     KNI_SetStaticShortField(jclass classHandle,                       jfieldID fieldID, jshort value);KNIEXPORT void     KNI_SetStaticIntField(jclass classHandle,                       jfieldID fieldID, jint value);KNIEXPORT void     KNI_SetStaticLongField(jclass classHandle,                       jfieldID fieldID, jlong value);KNIEXPORT void     KNI_SetStaticFloatField(jclass classHandle,                       jfieldID fieldID, jfloat value);KNIEXPORT void     KNI_SetStaticDoubleField(jclass classHandle,                       jfieldID fieldID, jdouble value);KNIEXPORT void     KNI_SetStaticObjectField(jclass classHandle,                       jfieldID fieldID, jobject fromHandle);/** * String operations */KNIEXPORT jsizeKNI_GetStringLength(jstring stringHandle);KNIEXPORT voidKNI_GetStringRegion(jstring stringHandle, jsize offset,		    jsize n, jchar* jcharbuf);KNIEXPORT voidKNI_NewStringUTFPriv(CVMExecEnv* ee, const char* utf8chars,		     jstring stringHandle);KNIEXPORT voidKNI_NewStringPriv(CVMExecEnv* ee, const jchar* chars,		  jsize size, jstring stringHandle);#define KNI_NewStringUTF(utf8chars, stringHandle) \    KNI_NewStringUTFPriv(_ee, utf8chars, stringHandle)#define KNI_NewString(chars, size, stringHandle) \    KNI_NewStringPriv(_ee, chars, size, stringHandle)/** * Array operations */KNIEXPORT jsize    KNI_GetArrayLength(jarray arrayHandle);#define KNI_GetArrayLength(arrayHandle)				\    (CVMID_icellIsNull(arrayHandle) ? -1 :			\     CVMD_arrayGetLength((CVMArrayOfAnyType*)			\			 CVMID_icellDirect(_ee, arrayHandle)))KNIEXPORT jboolean KNI_GetBooleanArrayElement(jbooleanArray arrayHandle,                       jsize index);KNIEXPORT jbyte    KNI_GetByteArrayElement(jbyteArray arrayHandle,                       jsize index);KNIEXPORT jchar    KNI_GetCharArrayElement(jcharArray arrayHandle,                       jsize index);KNIEXPORT jshort   KNI_GetShortArrayElement(jshortArray arrayHandle,                       jsize index);KNIEXPORT jint     KNI_GetIntArrayElement(jintArray arrayHandle,                       jsize index);KNIEXPORT jlong    KNI_GetLongArrayElement(jlongArray arrayHandle,                       jsize index);KNIEXPORT jfloat   KNI_GetFloatArrayElement(jfloatArray arrayHandle,                       jsize index);KNIEXPORT jdouble  KNI_GetDoubleArrayElement(jdoubleArray arrayHandle,                       jsize index);KNIEXPORT void     KNI_GetObjectArrayElement(jobjectArray arrayHandle,                       jsize index, jobject toHandle);KNIEXPORT void     KNI_SetBooleanArrayElement(jbooleanArray arrayHandle,                       jsize index, jboolean value);KNIEXPORT void     KNI_SetByteArrayElement(jbyteArray arrayHandle,                       jsize index, jbyte value);KNIEXPORT void     KNI_SetCharArrayElement(jcharArray arrayHandle,                       jsize index, jchar value);KNIEXPORT void     KNI_SetShortArrayElement(jshortArray arrayHandle,                       jsize index, jshort value);KNIEXPORT void     KNI_SetIntArrayElement(jintArray arrayHandle,                       jsize index, jint value);KNIEXPORT void     KNI_SetLongArrayElement(jlongArray arrayHandle,                       jsize index, jlong value);KNIEXPORT void     KNI_SetFloatArrayElement(jfloatArray arrayHandle,                       jsize index, jfloat value);KNIEXPORT void     KNI_SetDoubleArrayElement(jdoubleArray arrayHandle,                       jsize index, jdouble value);KNIEXPORT void     KNI_SetObjectArrayElement(jobjectArray arrayHandle,                       jsize index, jobject fromHandle);KNIEXPORT void     KNI_GetRawArrayRegion(jarray arrayHandle, jsize offset,                       jsize n, jbyte* dstBuffer);KNIEXPORT void     KNI_SetRawArrayRegion(jarray arrayHandle, jsize offset,                       jsize n, const jbyte* srcBuffer);/** * Parameter passing */KNIEXPORT jboolean KNI_GetParameterAsBoolean(jint index);KNIEXPORT jbyte    KNI_GetParameterAsByte(jint index);KNIEXPORT jchar    KNI_GetParameterAsChar(jint index);KNIEXPORT jshort   KNI_GetParameterAsShort(jint index);KNIEXPORT jint     KNI_GetParameterAsInt(jint index);KNIEXPORT jlong    KNI_GetParameterAsLong(jint index);KNIEXPORT jfloat   KNI_GetParameterAsFloat(jint index);KNIEXPORT jdouble  KNI_GetParameterAsDouble(jint index);KNIEXPORT void     KNI_GetParameterAsObject(jint index, jobject toHandle);#define KNIARG(index) \   (_arguments[index + (CVMmbIs(*_p_mb, STATIC) ? -1 : 0)].j)#define KNI_GetParameterAsBoolean(index) ((jboolean)KNIARG(index).i)#define KNI_GetParameterAsByte(index)    ((jbyte)KNIARG(index).i)#define KNI_GetParameterAsChar(index)    ((jchar)KNIARG(index).i)#define KNI_GetParameterAsShort(index)   ((jshort)KNIARG(index).i)#define KNI_GetParameterAsInt(index)     ((jint)KNIARG(index).i)#define KNI_GetParameterAsFloat(index)   ((jfloat)KNIARG(index).f)KNIEXPORT jlongKNI_GetParameterAsLongPriv(CVMJavaVal64* val64);KNIEXPORT jdoubleKNI_GetParameterAsDoublePriv(CVMJavaVal64* val64);#define KNI_GetParameterAsLong(index) \    CVMjvm2Long((CVMUint32*)&(KNIARG(index)))#define KNI_GetParameterAsDouble(index) \    CVMjvm2Double((CVMUint32*)&(KNIARG(index)))#define KNI_GetParameterAsObject(index, toHandle)			\    CVMID_icellSetDirect(_ee, toHandle,					\			 CVMID_icellDirect(_ee, &KNIARG(index).r));KNIEXPORT void     KNI_GetThisPointer(jobject toHandle);KNIEXPORT void     KNI_GetClassPointer(jclass toHandle);#define KNI_GetThisPointer(toHandle)					\   CVMID_icellSetDirect(_ee, toHandle,					\			CVMID_icellDirect(_ee, &_arguments[0].j.r))#define KNI_GetClassPointer(toHandle)				\{								\    jclass clazz_ = CVMcbJavaInstance(CVMmbClassBlock(*_p_mb));	\    CVMID_icellSetDirect(_ee, toHandle,				\			 CVMID_icellDirect(_ee, clazz_));	\}#define KNI_CheckAndReturn(cniCode)		\    if (CVMexceptionOccurred(_ee)) {		\	return CNI_EXCEPTION;			\    } else {					\	return cniCode;				\    }#define            KNI_ReturnVoid()         KNI_CheckAndReturn(CNI_VOID);#define            KNI_ReturnBoolean(value) KNI_ReturnInt((jboolean)value)#define            KNI_ReturnByte(value)    KNI_ReturnInt((jbyte)value)#define            KNI_ReturnChar(value)    KNI_ReturnInt((jchar)value)#define            KNI_ReturnShort(value)   KNI_ReturnInt((jshort)value)#define            KNI_ReturnInt(value)		\    _arguments[0].j.i = (jint)(value);		\    KNI_CheckAndReturn(CNI_SINGLE);#define            KNI_ReturnFloat(value)	\    _arguments[0].j.f = (jfloat)(value);	\    KNI_CheckAndReturn(CNI_SINGLE);#define            KNI_ReturnLong(value)	       	\    CVMlong2Jvm((CVMUint32*)&_arguments[0].j, value);	\    KNI_CheckAndReturn(CNI_DOUBLE);#define            KNI_ReturnDouble(value)		\    CVMdouble2Jvm((CVMUint32*)&_arguments[0].j, value);	\    KNI_CheckAndReturn(CNI_DOUBLE);/** * Handle operations */#define KNI_StartHandles(n)				\    CVMID_localrootBeginGcUnsafe(_ee) {			\        int _dummy /* eat up the trailing semicolon *//* jobject and  CVMObjectICell* are the same, which is why this works */#define KNI_DeclareHandle(x) \    CVMID_localrootDeclareGcUnsafe(CVMObjectICell, x)#define KNI_IsNullHandle(x) \    CVMID_icellIsNull(x)#define KNI_ReleaseHandle(x) \    CVMID_icellSetNull(x)#define KNI_EndHandles()				\        (void)_dummy; /* get rid of compiler warning */	\    } CVMID_localrootEndGcUnsafe();#define KNI_EndHandlesAndReturnObject(x)			\    CVMID_icellAssignDirect(_ee, &_arguments[0].j.r, x);	\    KNI_EndHandles();						\    KNI_CheckAndReturn(CNI_SINGLE);/** * Type macros */#define KNI_RETURNTYPE_VOID    CNIResultCode#define KNI_RETURNTYPE_BOOLEAN CNIResultCode#define KNI_RETURNTYPE_BYTE    CNIResultCode#define KNI_RETURNTYPE_CHAR    CNIResultCode#define KNI_RETURNTYPE_SHORT   CNIResultCode#define KNI_RETURNTYPE_INT     CNIResultCode#define KNI_RETURNTYPE_FLOAT   CNIResultCode#define KNI_RETURNTYPE_LONG    CNIResultCode#define KNI_RETURNTYPE_DOUBLE  CNIResultCode#define KNI_RETURNTYPE_OBJECT  CNIResultCode//// This definition has been added for KVM compatibility.// It is not part of the KNI Specification.//#define KNI_registerCleanup(instanceHandle, callback)#ifdef __cplusplus}#endif#endif /* !_JAVASOFT_KNI_H_ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?