Add jni method to update entries for a word efficiently.
Bug: 14425059 Change-Id: Ic628939ea68cdee17573409883a8403c73b78905
This commit is contained in:
parent
287e155e44
commit
ce5fd94b97
2 changed files with 21 additions and 0 deletions
|
@ -199,6 +199,9 @@ public final class BinaryDictionary extends Dictionary {
|
||||||
int[] word, int probability, int timestamp);
|
int[] word, int probability, int timestamp);
|
||||||
private static native boolean removeNgramEntryNative(long dict,
|
private static native boolean removeNgramEntryNative(long dict,
|
||||||
int[][] prevWordCodePointArrays, boolean[] isBeginningOfSentenceArray, int[] word);
|
int[][] prevWordCodePointArrays, boolean[] isBeginningOfSentenceArray, int[] word);
|
||||||
|
private static native boolean updateCounterNative(long dict,
|
||||||
|
int[][] prevWordCodePointArrays, boolean[] isBeginningOfSentenceArray,
|
||||||
|
int[] word, boolean isValidWord, int count, int timestamp);
|
||||||
private static native int addMultipleDictionaryEntriesNative(long dict,
|
private static native int addMultipleDictionaryEntriesNative(long dict,
|
||||||
LanguageModelParam[] languageModelParams, int startIndex);
|
LanguageModelParam[] languageModelParams, int startIndex);
|
||||||
private static native String getPropertyNative(long dict, String query);
|
private static native String getPropertyNative(long dict, String query);
|
||||||
|
|
|
@ -427,6 +427,19 @@ static bool latinime_BinaryDictionary_removeNgramEntry(JNIEnv *env, jclass clazz
|
||||||
CodePointArrayView(wordCodePoints, codePointCount));
|
CodePointArrayView(wordCodePoints, codePointCount));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool latinime_BinaryDictionary_updateCounter(JNIEnv *env, jclass clazz, jlong dict,
|
||||||
|
jobjectArray prevWordCodePointArrays, jbooleanArray isBeginningOfSentenceArray,
|
||||||
|
jintArray word, jboolean isValidWord, jint count, jint timestamp) {
|
||||||
|
Dictionary *dictionary = reinterpret_cast<Dictionary *>(dict);
|
||||||
|
if (!dictionary) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
jsize wordLength = env->GetArrayLength(word);
|
||||||
|
int wordCodePoints[wordLength];
|
||||||
|
env->GetIntArrayRegion(word, 0, wordLength, wordCodePoints);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// Returns how many language model params are processed.
|
// Returns how many language model params are processed.
|
||||||
static int latinime_BinaryDictionary_addMultipleDictionaryEntries(JNIEnv *env, jclass clazz,
|
static int latinime_BinaryDictionary_addMultipleDictionaryEntries(JNIEnv *env, jclass clazz,
|
||||||
jlong dict, jobjectArray languageModelParams, jint startIndex) {
|
jlong dict, jobjectArray languageModelParams, jint startIndex) {
|
||||||
|
@ -724,6 +737,11 @@ static const JNINativeMethod sMethods[] = {
|
||||||
const_cast<char *>("(J[[I[Z[I)Z"),
|
const_cast<char *>("(J[[I[Z[I)Z"),
|
||||||
reinterpret_cast<void *>(latinime_BinaryDictionary_removeNgramEntry)
|
reinterpret_cast<void *>(latinime_BinaryDictionary_removeNgramEntry)
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
const_cast<char *>("updateCounterNative"),
|
||||||
|
const_cast<char *>("(J[[I[Z[IZII)Z"),
|
||||||
|
reinterpret_cast<void *>(latinime_BinaryDictionary_updateCounter)
|
||||||
|
},
|
||||||
{
|
{
|
||||||
const_cast<char *>("addMultipleDictionaryEntriesNative"),
|
const_cast<char *>("addMultipleDictionaryEntriesNative"),
|
||||||
const_cast<char *>(
|
const_cast<char *>(
|
||||||
|
|
Loading…
Reference in a new issue