mirror of https://github.com/kiwix/libkiwix.git
Fix JNI android integration
This commit is contained in:
parent
d2f7503cfa
commit
520c1edf31
|
@ -21,6 +21,7 @@
|
||||||
|
|
||||||
#include <zim/file.h>
|
#include <zim/file.h>
|
||||||
#include "org_kiwix_kiwixlib_JNIKiwixSearcher.h"
|
#include "org_kiwix_kiwixlib_JNIKiwixSearcher.h"
|
||||||
|
#include "org_kiwix_kiwixlib_JNIKiwixSearcher_Result.h"
|
||||||
|
|
||||||
#include "reader.h"
|
#include "reader.h"
|
||||||
#include "searcher.h"
|
#include "searcher.h"
|
||||||
|
@ -29,6 +30,7 @@
|
||||||
#define SEARCHER (Handle<kiwix::Searcher>::getHandle(env, obj))
|
#define SEARCHER (Handle<kiwix::Searcher>::getHandle(env, obj))
|
||||||
#define RESULT (Handle<kiwix::Result>::getHandle(env, obj))
|
#define RESULT (Handle<kiwix::Result>::getHandle(env, obj))
|
||||||
|
|
||||||
|
|
||||||
JNIEXPORT void JNICALL
|
JNIEXPORT void JNICALL
|
||||||
Java_org_kiwix_kiwixlib_JNIKiwixSearcher_dispose(JNIEnv* env, jobject obj)
|
Java_org_kiwix_kiwixlib_JNIKiwixSearcher_dispose(JNIEnv* env, jobject obj)
|
||||||
{
|
{
|
||||||
|
@ -37,18 +39,19 @@ Java_org_kiwix_kiwixlib_JNIKiwixSearcher_dispose(JNIEnv* env, jobject obj)
|
||||||
|
|
||||||
/* Kiwix Reader JNI functions */
|
/* Kiwix Reader JNI functions */
|
||||||
JNIEXPORT jlong JNICALL
|
JNIEXPORT jlong JNICALL
|
||||||
Java_org_kiwix_kiwixlib_JNIKiwixSearcher_get_nativeHandle(JNIEnv* env,
|
Java_org_kiwix_kiwixlib_JNIKiwixSearcher_getNativeHandle(JNIEnv* env,
|
||||||
jobject obj)
|
jobject obj)
|
||||||
{
|
{
|
||||||
kiwix::Searcher* searcher = new kiwix::Searcher("", nullptr);
|
kiwix::Searcher* searcher = new kiwix::Searcher();
|
||||||
return reinterpret_cast<jlong>(new Handle<kiwix::Searcher>(searcher));
|
return reinterpret_cast<jlong>(new Handle<kiwix::Searcher>(searcher));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Kiwix library functions */
|
/* Kiwix library functions */
|
||||||
JNIEXPORT void JNICALL Java_org_kiwix_kiwixlib_JNIKiwixSearcher__add_reader(
|
JNIEXPORT void JNICALL Java_org_kiwix_kiwixlib_JNIKiwixSearcher_addReader(
|
||||||
JNIEnv* env, jobject obj, jobject reader)
|
JNIEnv* env, jobject obj, jobject reader)
|
||||||
{
|
{
|
||||||
auto searcher = SEARCHER;
|
auto searcher = SEARCHER;
|
||||||
|
|
||||||
searcher->add_reader(*(Handle<kiwix::Reader>::getHandle(env, reader)), "");
|
searcher->add_reader(*(Handle<kiwix::Reader>::getHandle(env, reader)), "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,7 +65,7 @@ JNIEXPORT void JNICALL Java_org_kiwix_kiwixlib_JNIKiwixSearcher_search(
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT jobject JNICALL
|
JNIEXPORT jobject JNICALL
|
||||||
Java_org_kiwix_kiwixlib_JNIKiwixSearcher_get_next_result(JNIEnv* env,
|
Java_org_kiwix_kiwixlib_JNIKiwixSearcher_getNextResult(JNIEnv* env,
|
||||||
jobject obj)
|
jobject obj)
|
||||||
{
|
{
|
||||||
jobject result = nullptr;
|
jobject result = nullptr;
|
||||||
|
@ -70,22 +73,22 @@ Java_org_kiwix_kiwixlib_JNIKiwixSearcher_get_next_result(JNIEnv* env,
|
||||||
kiwix::Result* cresult = SEARCHER->getNextResult();
|
kiwix::Result* cresult = SEARCHER->getNextResult();
|
||||||
if (cresult != nullptr) {
|
if (cresult != nullptr) {
|
||||||
jclass resultclass
|
jclass resultclass
|
||||||
= env->FindClass("org/kiwix/kiwixlib/JNIKiwixSearcher/Result");
|
= env->FindClass("org/kiwix/kiwixlib/JNIKiwixSearcher$Result");
|
||||||
jmethodID ctor = env->GetMethodID(
|
jmethodID ctor = env->GetMethodID(
|
||||||
resultclass, "<init>", "(JLorg/kiwix/kiwixlib/JNIKiwixSearcher;)V");
|
resultclass, "<init>", "(Lorg/kiwix/kiwixlib/JNIKiwixSearcher;JLorg/kiwix/kiwixlib/JNIKiwixSearcher;)V");
|
||||||
result = env->NewObject(resultclass, ctor, cresult, obj);
|
result = env->NewObject(resultclass, ctor, obj, reinterpret_cast<jlong>(new Handle<kiwix::Result>(cresult)), obj);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_kiwix_kiwixlib_JNIKiwixSearcher_Result_dispose(
|
JNIEXPORT void JNICALL Java_org_kiwix_kiwixlib_JNIKiwixSearcher_00024Result_dispose(
|
||||||
JNIEnv* env, jobject obj)
|
JNIEnv* env, jobject obj)
|
||||||
{
|
{
|
||||||
Handle<kiwix::Result>::dispose(env, obj);
|
Handle<kiwix::Result>::dispose(env, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT jstring JNICALL
|
JNIEXPORT jstring JNICALL
|
||||||
Java_org_kiwix_kiwixlib_JNIKiwixSearcher_Result_get_url(JNIEnv* env,
|
Java_org_kiwix_kiwixlib_JNIKiwixSearcher_00024Result_getUrl(JNIEnv* env,
|
||||||
jobject obj)
|
jobject obj)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
@ -96,7 +99,7 @@ Java_org_kiwix_kiwixlib_JNIKiwixSearcher_Result_get_url(JNIEnv* env,
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT jstring JNICALL
|
JNIEXPORT jstring JNICALL
|
||||||
Java_org_kiwix_kiwixlib_JNIKiwixSearcher_Result_get_title(JNIEnv* env,
|
Java_org_kiwix_kiwixlib_JNIKiwixSearcher_00024Result_getTitle(JNIEnv* env,
|
||||||
jobject obj)
|
jobject obj)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
@ -107,14 +110,14 @@ Java_org_kiwix_kiwixlib_JNIKiwixSearcher_Result_get_title(JNIEnv* env,
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT jstring JNICALL
|
JNIEXPORT jstring JNICALL
|
||||||
Java_org_kiwix_kiwixlib_JNIKiwixSearcher_Result_get_snippet(JNIEnv* env,
|
Java_org_kiwix_kiwixlib_JNIKiwixSearcher_00024Result_getSnippet(JNIEnv* env,
|
||||||
jobject obj)
|
jobject obj)
|
||||||
{
|
{
|
||||||
return c2jni(RESULT->get_snippet(), env);
|
return c2jni(RESULT->get_snippet(), env);
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT jstring JNICALL
|
JNIEXPORT jstring JNICALL
|
||||||
Java_org_kiwix_kiwixlib_JNIKiwixSearcher_Result_get_content(JNIEnv* env,
|
Java_org_kiwix_kiwixlib_JNIKiwixSearcher_00024Result_getContent(JNIEnv* env,
|
||||||
jobject obj)
|
jobject obj)
|
||||||
{
|
{
|
||||||
return c2jni(RESULT->get_content(), env);
|
return c2jni(RESULT->get_content(), env);
|
||||||
|
|
|
@ -10,7 +10,8 @@ kiwix_jni = custom_target('jni',
|
||||||
'org/kiwix/kiwixlib/JNIKiwixBool.java'],
|
'org/kiwix/kiwixlib/JNIKiwixBool.java'],
|
||||||
output: ['org_kiwix_kiwixlib_JNIKiwix.h',
|
output: ['org_kiwix_kiwixlib_JNIKiwix.h',
|
||||||
'org_kiwix_kiwixlib_JNIKiwixReader.h',
|
'org_kiwix_kiwixlib_JNIKiwixReader.h',
|
||||||
'org_kiwix_kiwixlib_JNIKiwixSearcher.h'],
|
'org_kiwix_kiwixlib_JNIKiwixSearcher.h',
|
||||||
|
'org_kiwix_kiwixlib_JNIKiwixSearcher_Result.h'],
|
||||||
command:[jni_generator, '@INPUT@']
|
command:[jni_generator, '@INPUT@']
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,7 @@ public class JNIKiwixReader
|
||||||
public JNIKiwixSearcher search(String query, int count)
|
public JNIKiwixSearcher search(String query, int count)
|
||||||
{
|
{
|
||||||
JNIKiwixSearcher searcher = new JNIKiwixSearcher();
|
JNIKiwixSearcher searcher = new JNIKiwixSearcher();
|
||||||
searcher.add_reader(this);
|
searcher.addKiwixReader(this);
|
||||||
searcher.search(query, count);
|
searcher.search(query, count);
|
||||||
return searcher;
|
return searcher;
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,32 +35,32 @@ public class JNIKiwixSearcher
|
||||||
nativeHandle = handle;
|
nativeHandle = handle;
|
||||||
searcher = _searcher;
|
searcher = _searcher;
|
||||||
}
|
}
|
||||||
public native String get_url();
|
public native String getUrl();
|
||||||
public native String get_title();
|
public native String getTitle();
|
||||||
public native String get_content();
|
public native String getContent();
|
||||||
public native void dispose();
|
public native void dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
public JNIKiwixSearcher()
|
public JNIKiwixSearcher()
|
||||||
{
|
{
|
||||||
nativeHandle = get_nativeHandle();
|
nativeHandle = getNativeHandle();
|
||||||
usedReaders = new Vector();
|
usedReaders = new Vector();
|
||||||
}
|
}
|
||||||
public native void dispose();
|
public native void dispose();
|
||||||
|
|
||||||
private native long get_nativeHandle();
|
private native long getNativeHandle();
|
||||||
private long nativeHandle;
|
private long nativeHandle;
|
||||||
private Vector usedReaders;
|
private Vector usedReaders;
|
||||||
|
|
||||||
public native void _add_reader(JNIKiwixReader reader);
|
public native void addReader(JNIKiwixReader reader);
|
||||||
public void add_reader(JNIKiwixReader reader)
|
public void addKiwixReader(JNIKiwixReader reader)
|
||||||
{
|
{
|
||||||
_add_reader(reader);
|
addReader(reader);
|
||||||
usedReaders.addElement(reader);
|
usedReaders.addElement(reader);
|
||||||
};
|
};
|
||||||
|
|
||||||
public native void search(String query, int count);
|
public native void search(String query, int count);
|
||||||
|
|
||||||
public native Result get_next_result();
|
public native Result getNextResult();
|
||||||
public native boolean has_more_result();
|
public native boolean hasMoreResult();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue