⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jnicli.cpp

📁 FastDb是高效的内存数据库系统
💻 CPP
📖 第 1 页 / 共 3 页
字号:
}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 + -