📄 jnicli.cpp
字号:
}jlongArray JNICALL jniGetLongArray(JNIEnv* env, jclass, jlong cursor){ return ((JniResultSet*)cursor)->nextLongArray(env);}jfloatArray JNICALL jniGetFloatArray(JNIEnv* env, jclass, jlong cursor){ return ((JniResultSet*)cursor)->nextFloatArray(env);}jdoubleArray JNICALL jniGetDoubleArray(JNIEnv* env, jclass, jlong cursor){ return ((JniResultSet*)cursor)->nextDoubleArray(env);}jobjectArray JNICALL jniGetStringArray(JNIEnv* env, jclass, jlong cursor){ return ((JniResultSet*)cursor)->nextStringArray(env);}jint JNICALL jniGetNumberOfSelectedRecords(JNIEnv* env, jclass, long cursor){ return ((JniResultSet*)cursor)->size();}void jniCloseCursor(JNIEnv* env, jclass, jlong cursor){ delete (JniResultSet*)cursor;}jlong JNICALL jniInsert(JNIEnv* env, jclass, jlong db, jlong desc, jlong buf){ return (jlong)((JniDatabase*)db)->insert((dbTableDescriptor*)desc, (ObjectBuffer*)buf);}void JNICALL jniUpdate(JNIEnv* env, jclass, jlong db, jlong oid, jlong desc, jlong buf){ ((JniDatabase*)db)->update((oid_t)oid, (dbTableDescriptor*)desc, (ObjectBuffer*)buf);}jlong JNICALL jniSelect(JNIEnv* env, jclass, jlong db, jlong desc, jstring condition){ char const* query = getStringBody(env, condition); JniResultSet* rs = ((JniDatabase*)db)->select((dbTableDescriptor*)desc, query); releaseStringBody(env, condition, query); return (jlong)rs;}jint JNICALL jniDelete(JNIEnv* env, jclass, jlong db, jlong desc, jstring condition){ char const* query = getStringBody(env, condition); int result = ((JniDatabase*)db)->remove((dbTableDescriptor*)desc, query); releaseStringBody(env, condition, query); return result;}void JNICALL jniCommit(JNIEnv* env, jclass, jlong db){ ((JniDatabase*)db)->commit();}void JNICALL jniRollback(JNIEnv* env, jclass, jlong db){ ((JniDatabase*)db)->rollback();}void JNICALL jniLock(JNIEnv* env, jclass, jlong db){ ((JniDatabase*)db)->lock();}void JNICALL jniAttach(JNIEnv* env, jclass, jlong db){ ((JniDatabase*)db)->attach();}void JNICALL jniDetach(JNIEnv* env, jclass, jlong db, jint flags){ ((JniDatabase*)db)->detach(flags);}void JNICALL jniSetThreadContext(JNIEnv* env, jclass, jlong db, jlong ctx){ ((JniDatabase*)db)->setThreadContext((dbDatabaseThreadContext*)ctx);}jlong JNICALL jniGetThreadContext(JNIEnv* env, jclass, jlong db){ return (jlong)((JniDatabase*)db)->getThreadContext();}jlong JNICALL jniCreateTableDescriptor(JNIEnv* env, jclass, jlong db, jstring table, jobjectArray fields, jintArray types, jobjectArray referencedTables, jobjectArray inverseFields, jintArray constraintMasks){ return (jlong)((JniDatabase*)db)->createTableDescriptor(env, table, fields, types, referencedTables, inverseFields, constraintMasks); } static JNINativeMethod fastdbApiMethods[] = { { "jniOpen", "(ILjava/lang/String;Ljava/lang/String;JI)J", (void*)&jniOpen }, { "jniClose", "(J)V", (void*)&jniClose }, { "jniNextTable", "(J)Ljava/lang/String;", (void*)&jniNextTable }, { "jniSetByte", "(JB)V", (void*)&jniSetByte }, { "jniSetShort", "(JS)V", (void*)&jniSetShort }, { "jniSetInt", "(JI)V", (void*)&jniSetInt }, { "jniSetLong", "(JJ)V", (void*)&jniSetLong }, { "jniSetString", "(JLjava/lang/String;)V", (void*)&jniSetString }, { "jniSetBoolArray", "(J[Z)V", (void*)&jniSetBoolArray }, { "jniSetCharArray", "(J[C)V", (void*)&jniSetCharArray }, { "jniSetByteArray", "(J[B)V", (void*)&jniSetByteArray }, { "jniSetShortArray", "(J[S)V", (void*)&jniSetShortArray }, { "jniSetIntArray", "(J[I)V", (void*)&jniSetIntArray }, { "jniSetLongArray", "(J[J)V", (void*)&jniSetLongArray }, { "jniSetFloatArray", "(J[F)V", (void*)&jniSetFloatArray }, { "jniSetDoubleArray", "(J[D)V", (void*)&jniSetDoubleArray }, { "jniSetStringArray", "(J[Ljava/lang/String;)V", (void*)&jniSetStringArray }, { "jniCreateBuffer", "()J", (void*)&jniCreateBuffer }, { "jniCreateTable", "(JLjava/lang/String;J)J", (void*)&jniCreateTable }, { "jniUpdateTable", "(JLjava/lang/String;J)J", (void*)&jniUpdateTable }, { "jniNext", "(J)J", (void*)&jniNext }, { "jniCloseCursor", "(J)V", (void*)&jniCloseCursor }, { "jniGetByte", "(J)B", (void*)&jniGetByte }, { "jniGetShort", "(J)S", (void*)&jniGetShort }, { "jniGetInt", "(J)I", (void*)&jniGetInt }, { "jniGetLong", "(J)J", (void*)&jniGetLong }, { "jniGetString", "(J)Ljava/lang/String;", (void*)&jniGetString }, { "jniGetBoolArray", "(J)[Z", (void*)&jniGetBoolArray }, { "jniGetCharArray", "(J)[C", (void*)&jniGetCharArray }, { "jniGetByteArray", "(J)[B", (void*)&jniGetByteArray }, { "jniGetShortArray", "(J)[S", (void*)&jniGetShortArray }, { "jniGetIntArray", "(J)[I", (void*)&jniGetIntArray }, { "jniGetLongArray", "(J)[J", (void*)&jniGetLongArray }, { "jniGetFloatArray", "(J)[F", (void*)&jniGetFloatArray }, { "jniGetDoubleArray", "(J)[D", (void*)&jniGetDoubleArray }, { "jniGetStringArray", "(J)[Ljava/lang/String;", (void*)&jniGetStringArray }, { "jniInsert", "(JJJ)J", (void*)&jniInsert }, { "jniUpdate", "(JJJJ)V", (void*)&jniUpdate }, { "jniSelect", "(JJLjava/lang/String;)J", (void*)&jniSelect }, { "jniGetNumberOfSelectedRecords", "(J)I", (void*)&jniGetNumberOfSelectedRecords }, { "jniDelete", "(JJLjava/lang/String;)I", (void*)&jniDelete }, { "jniCommit", "(J)V", (void*)&jniCommit }, { "jniRollback", "(J)V", (void*)&jniRollback }, { "jniLock", "(J)V", (void*)&jniLock }, { "jniAttach", "(J)V", (void*)&jniAttach }, { "jniDetach", "(JI)V", (void*)&jniDetach }, { "jniGetThreadContext", "(J)J", (void*)&jniGetThreadContext }, { "jniSetThreadContext", "(JJ)V", (void*)&jniSetThreadContext }, { "jniCreateTableDescriptor", "(JLjava/lang/String;[Ljava/lang/String;[I[Ljava/lang/String;[Ljava/lang/String;[I)J", (void*)&jniCreateTableDescriptor }};JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *){ JNIEnv *env; vm->GetEnv((void**)&env, JNI_VERSION_1_2); jclass cls = env->FindClass("jnicli/DatabaseJNI"); if (cls == NULL) { printf("Class jnicli/DatabaseJNI is not found\n"); } else { env->RegisterNatives(cls, fastdbApiMethods, itemsof(fastdbApiMethods)); } return JNI_VERSION_1_2;}JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *vm, void *){ JNIEnv *env; vm->GetEnv((void**)&env, JNI_VERSION_1_2); jclass cls = env->FindClass("jnicli/DatabaseJNI"); env->UnregisterNatives(cls);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -