Introduce GETTER_METHOD in utils.h

This commit is contained in:
Matthieu Gautier 2023-01-18 15:34:00 +01:00
parent ee5a6b3eeb
commit edea648634
12 changed files with 15 additions and 46 deletions

View File

@ -51,11 +51,7 @@ METHOD(void, Book, update__Lorg_kiwix_libkiwix_JNIKiwixReader_2, jobject archive
THIS->update(*getPtr<zim::Archive>(env, archive)); THIS->update(*getPtr<zim::Archive>(env, archive));
} }
#define GETTER(retType, name) JNIEXPORT retType JNICALL \ #define GETTER(retType, name) GETTER_METHOD(retType, libkiwix_Book, THIS, name)
Java_org_kiwix_libkiwix_Book_##name (JNIEnv* env, jobject thisObj) \
{ \
return TO_JNI(THIS->name()); \
}
GETTER(jstring, getId) GETTER(jstring, getId)
GETTER(jstring, getPath) GETTER(jstring, getPath)

View File

@ -69,11 +69,7 @@ METHOD(jint, Library, getBookCount, jboolean localBooks, jboolean remoteBooks) {
return THIS->getBookCount(localBooks, remoteBooks); return THIS->getBookCount(localBooks, remoteBooks);
} }
#define GETTER(retType, name) JNIEXPORT retType JNICALL \ #define GETTER(retType, name) GETTER_METHOD(retType, libkiwix_Library, THIS, name)
Java_org_kiwix_libkiwix_Library_##name (JNIEnv* env, jobject thisObj) \
{ \
return TO_JNI(THIS->name()); \
}
GETTER(jobjectArray, getBooksIds) GETTER(jobjectArray, getBooksIds)
GETTER(jobjectArray, getBooksLanguages) GETTER(jobjectArray, getBooksLanguages)

View File

@ -116,10 +116,7 @@ Java_org_kiwix_libzim_Archive_dispose(JNIEnv* env, jobject thisObj)
} }
#define THIS GET_PTR(zim::Archive) #define THIS GET_PTR(zim::Archive)
#define GETTER(retType, name) METHOD0(retType, libzim_Archive, name) \ #define GETTER(retType, name) GETTER_METHOD(retType, libzim_Archive, THIS, name)
{ \
return TO_JNI(THIS->name()); \
}
GETTER(jstring, getFilename) GETTER(jstring, getFilename)

View File

@ -36,10 +36,7 @@ Java_org_kiwix_kiwixlib_libzim_Blob_dispose(JNIEnv* env, jobject thisObj)
dispose<NATIVE_TYPE>(env, thisObj); dispose<NATIVE_TYPE>(env, thisObj);
} }
#define THIS GET_PTR(NATIVE_TYPE) #define THIS GET_PTR(NATIVE_TYPE)
#define GETTER(retType, name) METHOD0(retType, libzim_Blob, name) \ #define GETTER(retType, name) GETTER_METHOD(retType, libzim_Blob, THIS, name)
{ \
return TO_JNI(THIS->name()); \
}
METHOD0(jstring, libzim_Blob, getData) { METHOD0(jstring, libzim_Blob, getData) {
return TO_JNI(std::string(*THIS)); return TO_JNI(std::string(*THIS));

View File

@ -38,10 +38,7 @@ Java_org_kiwix_kiwixlib_libzim_Entry_dispose(JNIEnv* env, jobject thisObj)
} }
#define THIS GET_PTR(NATIVE_TYPE) #define THIS GET_PTR(NATIVE_TYPE)
#define GETTER(retType, name) METHOD0(retType, libzim_Entry, name) \ #define GETTER(retType, name) GETTER_METHOD(retType, libzim_Entry, THIS, name)
{ \
return TO_JNI(THIS->name()); \
}
GETTER(jboolean, isRedirect) GETTER(jboolean, isRedirect)

View File

@ -37,10 +37,7 @@ Java_org_kiwix_kiwixlib_libzim_Item_dispose(JNIEnv* env, jobject thisObj)
} }
#define THIS GET_PTR(NATIVE_TYPE) #define THIS GET_PTR(NATIVE_TYPE)
#define GETTER(retType, name) METHOD0(retType, libzim_Item, name) \ #define GETTER(retType, name) GETTER_METHOD(retType, libzim_Item, THIS, name)
{ \
return TO_JNI(THIS->name()); \
}
GETTER(jstring, getTitle) GETTER(jstring, getTitle)
GETTER(jstring, getPath) GETTER(jstring, getPath)

View File

@ -39,10 +39,7 @@ METHOD0(void, libzim_SearchIterator, dispose)
} }
#define THIS GET_PTR(NATIVE_TYPE) #define THIS GET_PTR(NATIVE_TYPE)
#define GETTER(retType, name) METHOD0(retType, libzim_SearchIterator, name) \ #define GETTER(retType, name) GETTER_METHOD(retType, libzim_SearchIterator, THIS, name)
{ \
return TO_JNI(THIS->name()); \
}
GETTER(jstring, getPath) GETTER(jstring, getPath)
GETTER(jstring, getTitle) GETTER(jstring, getTitle)

View File

@ -52,10 +52,7 @@ METHOD0(void, libzim_Searcher, dispose)
} }
#define THIS GET_PTR(NATIVE_TYPE) #define THIS GET_PTR(NATIVE_TYPE)
#define GETTER(retType, name) METHOD0(retType, libzim_Searcher, name) \ #define GETTER(retType, name) GETTER_METHOD(retType, libzim_Searcher, THIS, name)
{ \
return TO_JNI(THIS->name()); \
}
METHOD(jobject, libzim_Searcher, addArchive, jobject archive) { METHOD(jobject, libzim_Searcher, addArchive, jobject archive) {
auto cArchive = getPtr<zim::Archive>(env, archive); auto cArchive = getPtr<zim::Archive>(env, archive);

View File

@ -36,10 +36,7 @@ METHOD0(void, libzim_SuggestionItem, dispose)
} }
#define THIS GET_PTR(NATIVE_TYPE) #define THIS GET_PTR(NATIVE_TYPE)
#define GETTER(retType, name) METHOD0(retType, libzim_SuggestionItem, name) \ #define GETTER(retType, name) GETTER_METHOD(retType, libzim_SuggestionItem, THIS, name)
{ \
return TO_JNI(THIS->name()); \
}
GETTER(jstring, getTitle) GETTER(jstring, getTitle)

View File

@ -38,10 +38,7 @@ METHOD0(void, libzim_SuggestionIterator, dispose)
} }
#define THIS GET_PTR(NATIVE_TYPE) #define THIS GET_PTR(NATIVE_TYPE)
#define GETTER(retType, name) METHOD0(retType, libzim_SuggestionIterator, name) \ #define GETTER(retType, name) GETTER_METHOD(retType, libzim_SuggestionIterator, THIS, name)
{ \
return TO_JNI(THIS->name()); \
}
METHOD0(jboolean, libzim_SearchIterator, hasNext) { METHOD0(jboolean, libzim_SearchIterator, hasNext) {
NATIVE_TYPE next(*THIS); NATIVE_TYPE next(*THIS);

View File

@ -52,10 +52,7 @@ METHOD0(void, libzim_SuggestionSearcher, dispose)
} }
#define THIS GET_PTR(NATIVE_TYPE) #define THIS GET_PTR(NATIVE_TYPE)
#define GETTER(retType, name) METHOD0(retType, libzim_SuggestionSearcher, name) \ #define GETTER(retType, name) GETTER_METHOD(retType, libzim_SuggestionSearcher, THIS, name)
{ \
return TO_JNI(THIS->name()); \
}
METHOD(jobject, libzim_SuggestionSearcher, suggest, jstring query) { METHOD(jobject, libzim_SuggestionSearcher, suggest, jstring query) {
auto obj = NEW_OBJECT("org/kiwix/libzim/SuggestionSearch"); auto obj = NEW_OBJECT("org/kiwix/libzim/SuggestionSearch");

View File

@ -116,6 +116,10 @@ JNIEXPORT retType JNICALL Java_org_kiwix_##class##_##name( \
JNIEXPORT retType JNICALL Java_org_kiwix_##class##_##name( \ JNIEXPORT retType JNICALL Java_org_kiwix_##class##_##name( \
JNIEnv* env, jobject thisObj, __VA_ARGS__) JNIEnv* env, jobject thisObj, __VA_ARGS__)
#define GETTER_METHOD(retType, class, THIS, name) METHOD0(retType, class, name) { \
return TO_JNI(THIS->name()); \
}
inline jfieldID getHandleField(JNIEnv* env, jobject obj, const char* handleName) inline jfieldID getHandleField(JNIEnv* env, jobject obj, const char* handleName)
{ {
jclass c = env->GetObjectClass(obj); jclass c = env->GetObjectClass(obj);