29
29
#include " macros.h"
30
30
31
31
/* Kiwix Reader JNI functions */
32
- METHOD0 (void , allocate )
32
+ METHOD0 (void , setNativeHandler )
33
33
{
34
34
SET_PTR (std::make_shared<NATIVE_TYPE>());
35
35
}
@@ -40,35 +40,45 @@ METHOD0(void, dispose)
40
40
}
41
41
42
42
/* Kiwix library functions */
43
- /* JNIEXPORT jboolean JNICALL
44
- Java_org_kiwix_kiwixlib_Library_addBook(
45
- JNIEnv* env, jobject thisObj, jstring path)
43
+ METHOD (jboolean, addBook, jobject book)
46
44
{
47
- auto cPath = TO_C(path );
45
+ auto cBook = getPtr<kiwix::Book>(env, book );
48
46
49
47
try {
50
- kiwix::Reader reader(cPath);
51
- kiwix::Book book;
52
- book.update(reader);
53
- return LIBRARY->addBook(book);
48
+ return THIS->addBook (*cBook);
54
49
} catch (std::exception & e) {
55
50
LOG (" Unable to add the book" );
56
- LOG(e.what()); }
51
+ LOG (" %s " , e.what ()); }
57
52
return false ;
58
- }*/
53
+ }
59
54
60
55
METHOD (jobject, getBookById, jstring id) {
61
56
auto obj = NEW_OBJECT (" org/kiwix/libkiwix/Book" );
62
57
SET_HANDLE (kiwix::Book, obj, THIS->getBookById (TO_C (id)));
63
58
return obj;
64
59
}
65
60
61
+ METHOD (jobject, getArchiveById, jstring id) {
62
+ auto obj = NEW_OBJECT (" org/kiwix/libzim/Archive" );
63
+ setPtr (env, obj, THIS->getArchiveById (TO_C (id)));
64
+ return obj;
65
+ }
66
+
67
+ METHOD (jboolean, removeBookById, jstring id) {
68
+ return TO_JNI (THIS->removeBookById (TO_C (id)));
69
+ }
70
+
71
+ METHOD (jboolean, writeToFile, jstring path) {
72
+ return TO_JNI (THIS->writeToFile (TO_C (path)));
73
+ }
74
+
66
75
METHOD (jint, getBookCount, jboolean localBooks, jboolean remoteBooks) {
67
- return THIS->getBookCount (localBooks, remoteBooks);
76
+ return TO_JNI ( THIS->getBookCount (TO_C ( localBooks), TO_C ( remoteBooks)) );
68
77
}
69
78
70
79
GETTER (jobjectArray, getBooksIds)
71
80
GETTER(jobjectArray, getBooksLanguages)
81
+ GETTER(jobjectArray, getBooksCategories)
72
82
GETTER(jobjectArray, getBooksCreators)
73
83
GETTER(jobjectArray, getBooksPublishers)
74
84
0 commit comments