mirror of https://github.com/kiwix/libkiwix.git
Rename the JNIKiwixLibrary class to Library.
This mainly use the "new memory system". No need to call dispose function. Rename the class to Library to conform with the naming semantics (JNIKiwix* use old memory system)
This commit is contained in:
parent
75652d0e9f
commit
c2c89c6c86
|
@ -35,8 +35,8 @@ JNIEXPORT jlong JNICALL Java_org_kiwix_kiwixlib_JNIKiwixServer_getNativeServer(
|
||||||
__android_log_print(ANDROID_LOG_INFO, "kiwix", "Attempting to create server");
|
__android_log_print(ANDROID_LOG_INFO, "kiwix", "Attempting to create server");
|
||||||
Lock l;
|
Lock l;
|
||||||
try {
|
try {
|
||||||
auto library = Handle<kiwix::Library>::getHandle(env, jLibrary);
|
auto library = getPtr<kiwix::Library>(env, jLibrary);
|
||||||
kiwix::Server* server = new kiwix::Server(*library);
|
kiwix::Server* server = new kiwix::Server(library);
|
||||||
return reinterpret_cast<jlong>(new Handle<kiwix::Server>(server));
|
return reinterpret_cast<jlong>(new Handle<kiwix::Server>(server));
|
||||||
} catch (std::exception& e) {
|
} catch (std::exception& e) {
|
||||||
__android_log_print(ANDROID_LOG_WARN, "kiwix", "Error creating the server");
|
__android_log_print(ANDROID_LOG_WARN, "kiwix", "Error creating the server");
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2013 Emmanuel Engelhart <kelson@kiwix.org>
|
* Copyright (C) 2019-2020 Matthieu Gautier <mgautier@kymeria.fr>
|
||||||
* Copyright (C) 2017 Matthieu Gautier <mgautier@kymeria.fr>
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -21,52 +20,43 @@
|
||||||
|
|
||||||
#include <jni.h>
|
#include <jni.h>
|
||||||
#include <android/log.h>
|
#include <android/log.h>
|
||||||
#include "org_kiwix_kiwixlib_JNIKiwixLibrary.h"
|
#include "org_kiwix_kiwixlib_Library.h"
|
||||||
|
|
||||||
#include "library.h"
|
#include "library.h"
|
||||||
#include "reader.h"
|
#include "reader.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
|
||||||
/* Kiwix Reader JNI functions */
|
/* Kiwix Reader JNI functions */
|
||||||
JNIEXPORT jlong JNICALL Java_org_kiwix_kiwixlib_JNIKiwixLibrary_getNativeLibrary(
|
JNIEXPORT void JNICALL
|
||||||
JNIEnv* env, jobject obj)
|
Java_org_kiwix_kiwixlib_Library_allocate(
|
||||||
|
JNIEnv* env, jobject thisObj)
|
||||||
{
|
{
|
||||||
__android_log_print(ANDROID_LOG_INFO, "kiwix", "Attempting to create library");
|
allocate<kiwix::Library>(env, thisObj);
|
||||||
Lock l;
|
|
||||||
try {
|
|
||||||
kiwix::Library* library = new kiwix::Library();
|
|
||||||
return reinterpret_cast<jlong>(new Handle<kiwix::Library>(library));
|
|
||||||
} catch (std::exception& e) {
|
|
||||||
__android_log_print(ANDROID_LOG_WARN, "kiwix", "Error creating ZIM library");
|
|
||||||
__android_log_print(ANDROID_LOG_WARN, "kiwix", e.what());
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL
|
JNIEXPORT void JNICALL
|
||||||
Java_org_kiwix_kiwixlib_JNIKiwixLibrary_dispose(JNIEnv* env, jobject obj)
|
Java_org_kiwix_kiwixlib_Library_dispose(JNIEnv* env, jobject thisObj)
|
||||||
{
|
{
|
||||||
Handle<kiwix::Library>::dispose(env, obj);
|
dispose<kiwix::Library>(env, thisObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define LIBRARY (Handle<kiwix::Library>::getHandle(env, obj))
|
#define LIBRARY (getPtr<kiwix::Library>(env, thisObj))
|
||||||
|
|
||||||
/* Kiwix library functions */
|
/* Kiwix library functions */
|
||||||
JNIEXPORT jboolean JNICALL
|
JNIEXPORT jboolean JNICALL
|
||||||
Java_org_kiwix_kiwixlib_JNIKiwixLibrary_addBook(JNIEnv* env, jobject obj, jstring path)
|
Java_org_kiwix_kiwixlib_Library_addBook(
|
||||||
|
JNIEnv* env, jobject thisObj, jstring path)
|
||||||
{
|
{
|
||||||
std::string cPath = jni2c(path, env);
|
auto cPath = jni2c(path, env);
|
||||||
bool ret;
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
kiwix::Reader reader(cPath);
|
kiwix::Reader reader(cPath);
|
||||||
kiwix::Book book;
|
kiwix::Book book;
|
||||||
book.update(reader);
|
book.update(reader);
|
||||||
ret = LIBRARY->addBook(book);
|
return LIBRARY->addBook(book);
|
||||||
} catch (std::exception& e) {
|
} catch (std::exception& e) {
|
||||||
__android_log_print(ANDROID_LOG_ERROR, "kiwix", "Unable to add the book");
|
__android_log_print(ANDROID_LOG_ERROR, "kiwix", "Unable to add the book");
|
||||||
__android_log_print(ANDROID_LOG_ERROR, "kiwix", e.what());
|
__android_log_print(ANDROID_LOG_ERROR, "kiwix", e.what());
|
||||||
ret = false;
|
|
||||||
}
|
}
|
||||||
return ret;
|
return false;
|
||||||
}
|
}
|
|
@ -31,7 +31,7 @@ JNIEXPORT void JNICALL
|
||||||
Java_org_kiwix_kiwixlib_Manager_allocate(
|
Java_org_kiwix_kiwixlib_Manager_allocate(
|
||||||
JNIEnv* env, jobject thisObj, jobject libraryObj)
|
JNIEnv* env, jobject thisObj, jobject libraryObj)
|
||||||
{
|
{
|
||||||
auto lib = Handle<kiwix::Library>::getHandle(env, libraryObj);
|
auto lib = getPtr<kiwix::Library>(env, libraryObj);
|
||||||
allocate<kiwix::Manager>(env, thisObj, lib);
|
allocate<kiwix::Manager>(env, thisObj, lib);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ kiwix_jni = custom_target('jni',
|
||||||
input: ['org/kiwix/kiwixlib/JNIICU.java',
|
input: ['org/kiwix/kiwixlib/JNIICU.java',
|
||||||
'org/kiwix/kiwixlib/Book.java',
|
'org/kiwix/kiwixlib/Book.java',
|
||||||
'org/kiwix/kiwixlib/JNIKiwixReader.java',
|
'org/kiwix/kiwixlib/JNIKiwixReader.java',
|
||||||
'org/kiwix/kiwixlib/JNIKiwixLibrary.java',
|
'org/kiwix/kiwixlib/Library.java',
|
||||||
'org/kiwix/kiwixlib/Manager.java',
|
'org/kiwix/kiwixlib/Manager.java',
|
||||||
'org/kiwix/kiwixlib/JNIKiwixSearcher.java',
|
'org/kiwix/kiwixlib/JNIKiwixSearcher.java',
|
||||||
'org/kiwix/kiwixlib/JNIKiwixServer.java',
|
'org/kiwix/kiwixlib/JNIKiwixServer.java',
|
||||||
|
@ -15,7 +15,7 @@ kiwix_jni = custom_target('jni',
|
||||||
output: ['org_kiwix_kiwixlib_JNIKiwix.h',
|
output: ['org_kiwix_kiwixlib_JNIKiwix.h',
|
||||||
'org_kiwix_kiwixlib_Book.h',
|
'org_kiwix_kiwixlib_Book.h',
|
||||||
'org_kiwix_kiwixlib_JNIKiwixReader.h',
|
'org_kiwix_kiwixlib_JNIKiwixReader.h',
|
||||||
'org_kiwix_kiwixlib_JNIKiwixLibrary.h',
|
'org_kiwix_kiwixlib_Library.h',
|
||||||
'org_kiwix_kiwixlib_Manager.h',
|
'org_kiwix_kiwixlib_Manager.h',
|
||||||
'org_kiwix_kiwixlib_JNIKiwixServer.h',
|
'org_kiwix_kiwixlib_JNIKiwixServer.h',
|
||||||
'org_kiwix_kiwixlib_JNIKiwixSearcher.h',
|
'org_kiwix_kiwixlib_JNIKiwixSearcher.h',
|
||||||
|
@ -27,7 +27,7 @@ kiwix_sources += [
|
||||||
'android/kiwixicu.cpp',
|
'android/kiwixicu.cpp',
|
||||||
'android/book.cpp',
|
'android/book.cpp',
|
||||||
'android/kiwixreader.cpp',
|
'android/kiwixreader.cpp',
|
||||||
'android/kiwixlibrary.cpp',
|
'android/library.cpp',
|
||||||
'android/manager.cpp',
|
'android/manager.cpp',
|
||||||
'android/kiwixsearcher.cpp',
|
'android/kiwixsearcher.cpp',
|
||||||
'android/kiwixserver.cpp',
|
'android/kiwixserver.cpp',
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
package org.kiwix.kiwixlib;
|
package org.kiwix.kiwixlib;
|
||||||
|
|
||||||
import org.kiwix.kiwixlib.JNIKiwixException;
|
import org.kiwix.kiwixlib.JNIKiwixException;
|
||||||
import org.kiwix.kiwixlib.JNIKiwixLibrary;
|
import org.kiwix.kiwixlib.Library;
|
||||||
|
|
||||||
public class JNIKiwixServer
|
public class JNIKiwixServer
|
||||||
{
|
{
|
||||||
|
@ -38,11 +38,11 @@ public class JNIKiwixServer
|
||||||
|
|
||||||
public native void stop();
|
public native void stop();
|
||||||
|
|
||||||
public JNIKiwixServer(JNIKiwixLibrary library)
|
public JNIKiwixServer(Library library)
|
||||||
{
|
{
|
||||||
nativeHandle = getNativeServer(library);
|
nativeHandle = getNativeServer(library);
|
||||||
}
|
}
|
||||||
|
|
||||||
private native long getNativeServer(JNIKiwixLibrary library);
|
private native long getNativeServer(Library library);
|
||||||
private long nativeHandle;
|
private long nativeHandle;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2013 Emmanuel Engelhart <kelson@kiwix.org>
|
* Copyright (C) 2019-2020 Matthieu Gautier <mgautier@kymeria.fr>
|
||||||
* Copyright (C) 2017 Matthieu Gautier <mgautier@kymeria.fr>
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -22,17 +21,18 @@ package org.kiwix.kiwixlib;
|
||||||
|
|
||||||
import org.kiwix.kiwixlib.JNIKiwixException;
|
import org.kiwix.kiwixlib.JNIKiwixException;
|
||||||
|
|
||||||
public class JNIKiwixLibrary
|
public class Library
|
||||||
{
|
{
|
||||||
public native boolean addBook(String path) throws JNIKiwixException;
|
public native boolean addBook(String path) throws JNIKiwixException;
|
||||||
|
|
||||||
public JNIKiwixLibrary()
|
public Library()
|
||||||
{
|
{
|
||||||
nativeHandle = getNativeLibrary();
|
allocate();
|
||||||
}
|
}
|
||||||
|
|
||||||
public native void dispose();
|
@Override
|
||||||
|
protected void finalize() { dispose(); }
|
||||||
private native long getNativeLibrary();
|
private native void allocate();
|
||||||
|
private native void dispose();
|
||||||
private long nativeHandle;
|
private long nativeHandle;
|
||||||
}
|
}
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
package org.kiwix.kiwixlib;
|
package org.kiwix.kiwixlib;
|
||||||
|
|
||||||
import org.kiwix.kiwixlib.JNIKiwixLibrary;
|
import org.kiwix.kiwixlib.Library;
|
||||||
|
|
||||||
public class Manager
|
public class Manager
|
||||||
{
|
{
|
||||||
|
@ -75,16 +75,16 @@ public class Manager
|
||||||
String url,
|
String url,
|
||||||
boolean checkMetaData);
|
boolean checkMetaData);
|
||||||
|
|
||||||
public Manager(JNIKiwixLibrary library) {
|
public Manager(Library library) {
|
||||||
allocate(library);
|
allocate(library);
|
||||||
_library = library;
|
_library = library;
|
||||||
}
|
}
|
||||||
|
|
||||||
private JNIKiwixLibrary _library;
|
private Library _library;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void finalize() { dispose(); }
|
protected void finalize() { dispose(); }
|
||||||
private native void allocate(JNIKiwixLibrary library);
|
private native void allocate(Library library);
|
||||||
private native void dispose();
|
private native void dispose();
|
||||||
private long nativeHandle;
|
private long nativeHandle;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue