mirror of
https://github.com/kiwix/java-libkiwix.git
synced 2025-09-10 07:36:26 -04:00
Add new thread safe suggestion API.
Previous API were using an internal vector to store the suggestions search results. The new API takes a vector as out argument. So user can call the functions without having to protect the search. We should change the android API to reflect the change but it is a bit more complex to do at JNI level. As android do not call it multithreaded we are safe for now. And we need the new API asap for kiwix-desktop. So we keep the same API on android for now, the new api will be made in next version.
This commit is contained in:
parent
86ca1f6468
commit
995ad90a59
@ -355,9 +355,12 @@ Java_org_kiwix_kiwixlib_JNIKiwixReader_searchSuggestions(JNIEnv* env,
|
|||||||
unsigned int cCount = jni2c(count, env);
|
unsigned int cCount = jni2c(count, env);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
#pragma GCC diagnostic push
|
||||||
|
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||||
if (READER->searchSuggestionsSmart(cPrefix, cCount)) {
|
if (READER->searchSuggestionsSmart(cPrefix, cCount)) {
|
||||||
retVal = JNI_TRUE;
|
retVal = JNI_TRUE;
|
||||||
}
|
}
|
||||||
|
#pragma GCC diagnostic pop
|
||||||
} catch (std::exception& e) {
|
} catch (std::exception& e) {
|
||||||
LOG("Unable to get search results for pattern: %s", cPrefix.c_str());
|
LOG("Unable to get search results for pattern: %s", cPrefix.c_str());
|
||||||
LOG(e.what());
|
LOG(e.what());
|
||||||
@ -377,11 +380,14 @@ Java_org_kiwix_kiwixlib_JNIKiwixReader_getNextSuggestion(JNIEnv* env,
|
|||||||
std::string cUrl;
|
std::string cUrl;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
#pragma GCC diagnostic push
|
||||||
|
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||||
if (READER->getNextSuggestion(cTitle, cUrl)) {
|
if (READER->getNextSuggestion(cTitle, cUrl)) {
|
||||||
setStringObjValue(cTitle, titleObj, env);
|
setStringObjValue(cTitle, titleObj, env);
|
||||||
setStringObjValue(cUrl, urlObj, env);
|
setStringObjValue(cUrl, urlObj, env);
|
||||||
retVal = JNI_TRUE;
|
retVal = JNI_TRUE;
|
||||||
}
|
}
|
||||||
|
#pragma GCC diagnostic pop
|
||||||
} catch (std::exception& e) {
|
} catch (std::exception& e) {
|
||||||
LOG("Unable to get next suggestion");
|
LOG("Unable to get next suggestion");
|
||||||
LOG(e.what());
|
LOG(e.what());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user