Merge "Remove unused partial commit."
This commit is contained in:
commit
7c20f140e0
12 changed files with 21 additions and 124 deletions
|
@ -161,9 +161,9 @@ public final class BinaryDictionary extends Dictionary {
|
||||||
private static native int getNextWordNative(long dict, int token, int[] outCodePoints);
|
private static native int getNextWordNative(long dict, int token, int[] outCodePoints);
|
||||||
private static native void getSuggestionsNative(long dict, long proximityInfo,
|
private static native void getSuggestionsNative(long dict, long proximityInfo,
|
||||||
long traverseSession, int[] xCoordinates, int[] yCoordinates, int[] times,
|
long traverseSession, int[] xCoordinates, int[] yCoordinates, int[] times,
|
||||||
int[] pointerIds, int[] inputCodePoints, int inputSize, int commitPoint,
|
int[] pointerIds, int[] inputCodePoints, int inputSize, int[] suggestOptions,
|
||||||
int[] suggestOptions, int[] prevWordCodePointArray, int[] outputSuggestionCount,
|
int[] prevWordCodePointArray, int[] outputSuggestionCount, int[] outputCodePoints,
|
||||||
int[] outputCodePoints, int[] outputScores, int[] outputIndices, int[] outputTypes,
|
int[] outputScores, int[] outputIndices, int[] outputTypes,
|
||||||
int[] outputAutoCommitFirstWordConfidence);
|
int[] outputAutoCommitFirstWordConfidence);
|
||||||
private static native void addUnigramWordNative(long dict, int[] word, int probability,
|
private static native void addUnigramWordNative(long dict, int[] word, int probability,
|
||||||
int[] shortcutTarget, int shortcutProbability, boolean isNotAWord,
|
int[] shortcutTarget, int shortcutProbability, boolean isNotAWord,
|
||||||
|
@ -262,7 +262,7 @@ public final class BinaryDictionary extends Dictionary {
|
||||||
getSuggestionsNative(mNativeDict, proximityInfo.getNativeProximityInfo(),
|
getSuggestionsNative(mNativeDict, proximityInfo.getNativeProximityInfo(),
|
||||||
getTraverseSession(sessionId).getSession(), ips.getXCoordinates(),
|
getTraverseSession(sessionId).getSession(), ips.getXCoordinates(),
|
||||||
ips.getYCoordinates(), ips.getTimes(), ips.getPointerIds(), mInputCodePoints,
|
ips.getYCoordinates(), ips.getTimes(), ips.getPointerIds(), mInputCodePoints,
|
||||||
inputSize, 0 /* commitPoint */, mNativeSuggestOptions.getOptions(),
|
inputSize, mNativeSuggestOptions.getOptions(),
|
||||||
prevWordCodePointArray, mOutputSuggestionCount, mOutputCodePoints, mOutputScores,
|
prevWordCodePointArray, mOutputSuggestionCount, mOutputCodePoints, mOutputScores,
|
||||||
mSpaceIndices, mOutputTypes, mOutputAutoCommitFirstWordConfidence);
|
mSpaceIndices, mOutputTypes, mOutputAutoCommitFirstWordConfidence);
|
||||||
final int count = mOutputSuggestionCount[0];
|
final int count = mOutputSuggestionCount[0];
|
||||||
|
|
|
@ -143,7 +143,7 @@ static int latinime_BinaryDictionary_getFormatVersion(JNIEnv *env, jclass clazz,
|
||||||
static void latinime_BinaryDictionary_getSuggestions(JNIEnv *env, jclass clazz, jlong dict,
|
static void latinime_BinaryDictionary_getSuggestions(JNIEnv *env, jclass clazz, jlong dict,
|
||||||
jlong proximityInfo, jlong dicTraverseSession, jintArray xCoordinatesArray,
|
jlong proximityInfo, jlong dicTraverseSession, jintArray xCoordinatesArray,
|
||||||
jintArray yCoordinatesArray, jintArray timesArray, jintArray pointerIdsArray,
|
jintArray yCoordinatesArray, jintArray timesArray, jintArray pointerIdsArray,
|
||||||
jintArray inputCodePointsArray, jint inputSize, jint commitPoint, jintArray suggestOptions,
|
jintArray inputCodePointsArray, jint inputSize, jintArray suggestOptions,
|
||||||
jintArray prevWordCodePointsForBigrams, jintArray outSuggestionCount,
|
jintArray prevWordCodePointsForBigrams, jintArray outSuggestionCount,
|
||||||
jintArray outCodePointsArray, jintArray outScoresArray, jintArray outSpaceIndicesArray,
|
jintArray outCodePointsArray, jintArray outScoresArray, jintArray outSpaceIndicesArray,
|
||||||
jintArray outTypesArray, jintArray outAutoCommitFirstWordConfidenceArray) {
|
jintArray outTypesArray, jintArray outAutoCommitFirstWordConfidenceArray) {
|
||||||
|
@ -220,7 +220,7 @@ static void latinime_BinaryDictionary_getSuggestions(JNIEnv *env, jclass clazz,
|
||||||
// TODO: Use SuggestionResults to return suggestions.
|
// TODO: Use SuggestionResults to return suggestions.
|
||||||
count = dictionary->getSuggestions(pInfo, traverseSession, xCoordinates, yCoordinates,
|
count = dictionary->getSuggestions(pInfo, traverseSession, xCoordinates, yCoordinates,
|
||||||
times, pointerIds, inputCodePoints, inputSize, prevWordCodePoints,
|
times, pointerIds, inputCodePoints, inputSize, prevWordCodePoints,
|
||||||
prevWordCodePointsLength, commitPoint, &givenSuggestOptions, outputCodePoints,
|
prevWordCodePointsLength, &givenSuggestOptions, outputCodePoints,
|
||||||
scores, spaceIndices, outputTypes, outputAutoCommitFirstWordConfidence);
|
scores, spaceIndices, outputTypes, outputAutoCommitFirstWordConfidence);
|
||||||
} else {
|
} else {
|
||||||
SuggestionResults suggestionResults(MAX_RESULTS);
|
SuggestionResults suggestionResults(MAX_RESULTS);
|
||||||
|
@ -506,7 +506,7 @@ static const JNINativeMethod sMethods[] = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
const_cast<char *>("getSuggestionsNative"),
|
const_cast<char *>("getSuggestionsNative"),
|
||||||
const_cast<char *>("(JJJ[I[I[I[I[III[I[I[I[I[I[I[I[I)V"),
|
const_cast<char *>("(JJJ[I[I[I[I[II[I[I[I[I[I[I[I[I)V"),
|
||||||
reinterpret_cast<void *>(latinime_BinaryDictionary_getSuggestions)
|
reinterpret_cast<void *>(latinime_BinaryDictionary_getSuggestions)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -284,33 +284,6 @@ class DicNode {
|
||||||
return prevWordsLen + currentWordDepth > MAX_WORD_LENGTH - 3;
|
return prevWordsLen + currentWordDepth > MAX_WORD_LENGTH - 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: This may be defective. Needs to be revised.
|
|
||||||
bool truncateNode(const DicNode *const topNode, const int inputCommitPoint) {
|
|
||||||
const int prevWordLenOfTop = mDicNodeState.mDicNodeStatePrevWord.getPrevWordLength();
|
|
||||||
int newPrevWordStartIndex = inputCommitPoint;
|
|
||||||
int charCount = 0;
|
|
||||||
// Find new word start index
|
|
||||||
for (int i = 0; i < prevWordLenOfTop; ++i) {
|
|
||||||
const int c = mDicNodeState.mDicNodeStatePrevWord.getPrevWordCodePointAt(i);
|
|
||||||
// TODO: Check other separators.
|
|
||||||
if (c != KEYCODE_SPACE && c != KEYCODE_SINGLE_QUOTE) {
|
|
||||||
if (charCount == inputCommitPoint) {
|
|
||||||
newPrevWordStartIndex = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
++charCount;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!mDicNodeState.mDicNodeStatePrevWord.startsWith(
|
|
||||||
&topNode->mDicNodeState.mDicNodeStatePrevWord, newPrevWordStartIndex - 1)) {
|
|
||||||
// Node mismatch.
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
mDicNodeState.mDicNodeStateInput.truncate(inputCommitPoint);
|
|
||||||
mDicNodeState.mDicNodeStatePrevWord.truncate(newPrevWordStartIndex);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void outputResult(int *dest) const {
|
void outputResult(int *dest) const {
|
||||||
const uint16_t prevWordLength = mDicNodeState.mDicNodeStatePrevWord.getPrevWordLength();
|
const uint16_t prevWordLength = mDicNodeState.mDicNodeStatePrevWord.getPrevWordLength();
|
||||||
const uint16_t currentDepth = getNodeCodePointCount();
|
const uint16_t currentDepth = getNodeCodePointCount();
|
||||||
|
|
|
@ -28,37 +28,4 @@ const int DicNodesCache::LARGE_PRIORITY_QUEUE_CAPACITY = 310;
|
||||||
// Capacity for reducing memory footprint.
|
// Capacity for reducing memory footprint.
|
||||||
const int DicNodesCache::SMALL_PRIORITY_QUEUE_CAPACITY = 100;
|
const int DicNodesCache::SMALL_PRIORITY_QUEUE_CAPACITY = 100;
|
||||||
|
|
||||||
/**
|
|
||||||
* Truncates all of the dicNodes so that they start at the given commit point.
|
|
||||||
* Only called for multi-word typing input.
|
|
||||||
*/
|
|
||||||
DicNode *DicNodesCache::setCommitPoint(int commitPoint) {
|
|
||||||
std::list<DicNode> dicNodesList;
|
|
||||||
while (mCachedDicNodesForContinuousSuggestion->getSize() > 0) {
|
|
||||||
DicNode dicNode;
|
|
||||||
mCachedDicNodesForContinuousSuggestion->copyPop(&dicNode);
|
|
||||||
dicNodesList.push_front(dicNode);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the starting words of the top scoring dicNode (last dicNode popped from priority queue)
|
|
||||||
// up to the commit point. These words have already been committed to the text view.
|
|
||||||
DicNode *topDicNode = &dicNodesList.front();
|
|
||||||
DicNode topDicNodeCopy;
|
|
||||||
DicNodeUtils::initByCopy(topDicNode, &topDicNodeCopy);
|
|
||||||
|
|
||||||
// Keep only those dicNodes that match the same starting words.
|
|
||||||
std::list<DicNode>::iterator iter;
|
|
||||||
for (iter = dicNodesList.begin(); iter != dicNodesList.end(); iter++) {
|
|
||||||
DicNode *dicNode = &*iter;
|
|
||||||
if (dicNode->truncateNode(&topDicNodeCopy, commitPoint)) {
|
|
||||||
mCachedDicNodesForContinuousSuggestion->copyPush(dicNode);
|
|
||||||
} else {
|
|
||||||
// Top dicNode should be reprocessed.
|
|
||||||
ASSERT(dicNode != topDicNode);
|
|
||||||
DicNode::managedDelete(dicNode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
mInputIndex -= commitPoint;
|
|
||||||
return topDicNode;
|
|
||||||
}
|
|
||||||
} // namespace latinime
|
} // namespace latinime
|
||||||
|
|
|
@ -76,8 +76,6 @@ class DicNodesCache {
|
||||||
moveNodesAndReturnReusableEmptyQueue(mNextActiveDicNodes, &mActiveDicNodes);
|
moveNodesAndReturnReusableEmptyQueue(mNextActiveDicNodes, &mActiveDicNodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
DicNode *setCommitPoint(int commitPoint);
|
|
||||||
|
|
||||||
int activeSize() const { return mActiveDicNodes->getSize(); }
|
int activeSize() const { return mActiveDicNodes->getSize(); }
|
||||||
int terminalSize() const { return mTerminalDicNodes->getSize(); }
|
int terminalSize() const { return mTerminalDicNodes->getSize(); }
|
||||||
bool isLookAheadCorrectionInputIndex(const int inputIndex) const {
|
bool isLookAheadCorrectionInputIndex(const int inputIndex) const {
|
||||||
|
|
|
@ -27,11 +27,6 @@ class DicNodeStateInput {
|
||||||
DicNodeStateInput() {}
|
DicNodeStateInput() {}
|
||||||
~DicNodeStateInput() {}
|
~DicNodeStateInput() {}
|
||||||
|
|
||||||
// TODO: Merge into DicNodeStatePrevWord::truncate
|
|
||||||
void truncate(const int commitPoint) {
|
|
||||||
mInputIndex[0] -= commitPoint;
|
|
||||||
}
|
|
||||||
|
|
||||||
void init() {
|
void init() {
|
||||||
for (int i = 0; i < MAX_POINTER_COUNT_G; i++) {
|
for (int i = 0; i < MAX_POINTER_COUNT_G; i++) {
|
||||||
// TODO: The initial value for mInputIndex should be -1?
|
// TODO: The initial value for mInputIndex should be -1?
|
||||||
|
|
|
@ -70,18 +70,6 @@ class DicNodeStatePrevWord {
|
||||||
mSecondWordFirstInputIndex = prevWordSecondWordFirstInputIndex;
|
mSecondWordFirstInputIndex = prevWordSecondWordFirstInputIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
void truncate(const int offset) {
|
|
||||||
// TODO: memmove
|
|
||||||
if (mPrevWordLength < offset) {
|
|
||||||
memset(mPrevWord, 0, sizeof(mPrevWord));
|
|
||||||
mPrevWordLength = 0;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const int newPrevWordLength = mPrevWordLength - offset;
|
|
||||||
memmove(mPrevWord, &mPrevWord[offset], newPrevWordLength * sizeof(mPrevWord[0]));
|
|
||||||
mPrevWordLength = newPrevWordLength;
|
|
||||||
}
|
|
||||||
|
|
||||||
void setSecondWordFirstInputIndex(const int inputIndex) {
|
void setSecondWordFirstInputIndex(const int inputIndex) {
|
||||||
mSecondWordFirstInputIndex = inputIndex;
|
mSecondWordFirstInputIndex = inputIndex;
|
||||||
}
|
}
|
||||||
|
@ -111,18 +99,6 @@ class DicNodeStatePrevWord {
|
||||||
return mPrevWord[id];
|
return mPrevWord[id];
|
||||||
}
|
}
|
||||||
|
|
||||||
bool startsWith(const DicNodeStatePrevWord *const prefix, const int prefixLen) const {
|
|
||||||
if (prefixLen > mPrevWordLength) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
for (int i = 0; i < prefixLen; ++i) {
|
|
||||||
if (mPrevWord[i] != prefix->mPrevWord[i]) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
const int *getPrevWordBuf() const {
|
const int *getPrevWordBuf() const {
|
||||||
return mPrevWord;
|
return mPrevWord;
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,7 +45,7 @@ Dictionary::Dictionary(JNIEnv *env, DictionaryStructureWithBufferPolicy::Structu
|
||||||
|
|
||||||
int Dictionary::getSuggestions(ProximityInfo *proximityInfo, DicTraverseSession *traverseSession,
|
int Dictionary::getSuggestions(ProximityInfo *proximityInfo, DicTraverseSession *traverseSession,
|
||||||
int *xcoordinates, int *ycoordinates, int *times, int *pointerIds, int *inputCodePoints,
|
int *xcoordinates, int *ycoordinates, int *times, int *pointerIds, int *inputCodePoints,
|
||||||
int inputSize, int *prevWordCodePoints, int prevWordLength, int commitPoint,
|
int inputSize, int *prevWordCodePoints, int prevWordLength,
|
||||||
const SuggestOptions *const suggestOptions, int *outWords, int *outputScores,
|
const SuggestOptions *const suggestOptions, int *outWords, int *outputScores,
|
||||||
int *spaceIndices, int *outputTypes, int *outputAutoCommitFirstWordConfidence) const {
|
int *spaceIndices, int *outputTypes, int *outputAutoCommitFirstWordConfidence) const {
|
||||||
TimeKeeper::setCurrentTime();
|
TimeKeeper::setCurrentTime();
|
||||||
|
@ -54,7 +54,7 @@ int Dictionary::getSuggestions(ProximityInfo *proximityInfo, DicTraverseSession
|
||||||
DicTraverseSession::initSessionInstance(
|
DicTraverseSession::initSessionInstance(
|
||||||
traverseSession, this, prevWordCodePoints, prevWordLength, suggestOptions);
|
traverseSession, this, prevWordCodePoints, prevWordLength, suggestOptions);
|
||||||
result = mGestureSuggest->getSuggestions(proximityInfo, traverseSession, xcoordinates,
|
result = mGestureSuggest->getSuggestions(proximityInfo, traverseSession, xcoordinates,
|
||||||
ycoordinates, times, pointerIds, inputCodePoints, inputSize, commitPoint, outWords,
|
ycoordinates, times, pointerIds, inputCodePoints, inputSize, outWords,
|
||||||
outputScores, spaceIndices, outputTypes, outputAutoCommitFirstWordConfidence);
|
outputScores, spaceIndices, outputTypes, outputAutoCommitFirstWordConfidence);
|
||||||
if (DEBUG_DICT) {
|
if (DEBUG_DICT) {
|
||||||
DUMP_RESULT(outWords, outputScores);
|
DUMP_RESULT(outWords, outputScores);
|
||||||
|
@ -64,7 +64,7 @@ int Dictionary::getSuggestions(ProximityInfo *proximityInfo, DicTraverseSession
|
||||||
DicTraverseSession::initSessionInstance(
|
DicTraverseSession::initSessionInstance(
|
||||||
traverseSession, this, prevWordCodePoints, prevWordLength, suggestOptions);
|
traverseSession, this, prevWordCodePoints, prevWordLength, suggestOptions);
|
||||||
result = mTypingSuggest->getSuggestions(proximityInfo, traverseSession, xcoordinates,
|
result = mTypingSuggest->getSuggestions(proximityInfo, traverseSession, xcoordinates,
|
||||||
ycoordinates, times, pointerIds, inputCodePoints, inputSize, commitPoint,
|
ycoordinates, times, pointerIds, inputCodePoints, inputSize,
|
||||||
outWords, outputScores, spaceIndices, outputTypes,
|
outWords, outputScores, spaceIndices, outputTypes,
|
||||||
outputAutoCommitFirstWordConfidence);
|
outputAutoCommitFirstWordConfidence);
|
||||||
if (DEBUG_DICT) {
|
if (DEBUG_DICT) {
|
||||||
|
|
|
@ -64,7 +64,7 @@ class Dictionary {
|
||||||
|
|
||||||
int getSuggestions(ProximityInfo *proximityInfo, DicTraverseSession *traverseSession,
|
int getSuggestions(ProximityInfo *proximityInfo, DicTraverseSession *traverseSession,
|
||||||
int *xcoordinates, int *ycoordinates, int *times, int *pointerIds, int *inputCodePoints,
|
int *xcoordinates, int *ycoordinates, int *times, int *pointerIds, int *inputCodePoints,
|
||||||
int inputSize, int *prevWordCodePoints, int prevWordLength, int commitPoint,
|
int inputSize, int *prevWordCodePoints, int prevWordLength,
|
||||||
const SuggestOptions *const suggestOptions, int *outWords, int *outputScores,
|
const SuggestOptions *const suggestOptions, int *outWords, int *outputScores,
|
||||||
int *spaceIndices, int *outputTypes, int *outputAutoCommitFirstWordConfidence) const;
|
int *spaceIndices, int *outputTypes, int *outputAutoCommitFirstWordConfidence) const;
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ const int Suggest::MIN_CONTINUOUS_SUGGESTION_INPUT_SIZE = 2;
|
||||||
*/
|
*/
|
||||||
int Suggest::getSuggestions(ProximityInfo *pInfo, void *traverseSession,
|
int Suggest::getSuggestions(ProximityInfo *pInfo, void *traverseSession,
|
||||||
int *inputXs, int *inputYs, int *times, int *pointerIds, int *inputCodePoints,
|
int *inputXs, int *inputYs, int *times, int *pointerIds, int *inputCodePoints,
|
||||||
int inputSize, int commitPoint, int *outWords, int *outputScores, int *outputIndices,
|
int inputSize, int *outWords, int *outputScores, int *outputIndices,
|
||||||
int *outputTypes, int *outputAutoCommitFirstWordConfidence) const {
|
int *outputTypes, int *outputAutoCommitFirstWordConfidence) const {
|
||||||
PROF_OPEN;
|
PROF_OPEN;
|
||||||
PROF_START(0);
|
PROF_START(0);
|
||||||
|
@ -54,7 +54,7 @@ int Suggest::getSuggestions(ProximityInfo *pInfo, void *traverseSession,
|
||||||
pointerIds, maxSpatialDistance, TRAVERSAL->getMaxPointerCount());
|
pointerIds, maxSpatialDistance, TRAVERSAL->getMaxPointerCount());
|
||||||
// TODO: Add the way to evaluate cache
|
// TODO: Add the way to evaluate cache
|
||||||
|
|
||||||
initializeSearch(tSession, commitPoint);
|
initializeSearch(tSession);
|
||||||
PROF_END(0);
|
PROF_END(0);
|
||||||
PROF_START(1);
|
PROF_START(1);
|
||||||
|
|
||||||
|
@ -77,27 +77,15 @@ int Suggest::getSuggestions(ProximityInfo *pInfo, void *traverseSession,
|
||||||
* Initializes the search at the root of the lexicon trie. Note that when possible the search will
|
* Initializes the search at the root of the lexicon trie. Note that when possible the search will
|
||||||
* continue suggestion from where it left off during the last call.
|
* continue suggestion from where it left off during the last call.
|
||||||
*/
|
*/
|
||||||
void Suggest::initializeSearch(DicTraverseSession *traverseSession, int commitPoint) const {
|
void Suggest::initializeSearch(DicTraverseSession *traverseSession) const {
|
||||||
if (!traverseSession->getProximityInfoState(0)->isUsed()) {
|
if (!traverseSession->getProximityInfoState(0)->isUsed()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Never auto partial commit for now.
|
|
||||||
commitPoint = 0;
|
|
||||||
|
|
||||||
if (traverseSession->getInputSize() > MIN_CONTINUOUS_SUGGESTION_INPUT_SIZE
|
if (traverseSession->getInputSize() > MIN_CONTINUOUS_SUGGESTION_INPUT_SIZE
|
||||||
&& traverseSession->isContinuousSuggestionPossible()) {
|
&& traverseSession->isContinuousSuggestionPossible()) {
|
||||||
if (commitPoint == 0) {
|
|
||||||
// Continue suggestion
|
// Continue suggestion
|
||||||
traverseSession->getDicTraverseCache()->continueSearch();
|
traverseSession->getDicTraverseCache()->continueSearch();
|
||||||
} else {
|
|
||||||
// Continue suggestion after partial commit.
|
|
||||||
DicNode *topDicNode =
|
|
||||||
traverseSession->getDicTraverseCache()->setCommitPoint(commitPoint);
|
|
||||||
traverseSession->setPrevWordPtNodePos(topDicNode->getPrevWordPtNodePos());
|
|
||||||
traverseSession->getDicTraverseCache()->continueSearch();
|
|
||||||
traverseSession->setPartiallyCommited();
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
// Restart recognition at the root.
|
// Restart recognition at the root.
|
||||||
traverseSession->resetCache(TRAVERSAL->getMaxCacheSize(traverseSession->getInputSize()),
|
traverseSession->resetCache(TRAVERSAL->getMaxCacheSize(traverseSession->getInputSize()),
|
||||||
|
|
|
@ -47,15 +47,15 @@ class Suggest : public SuggestInterface {
|
||||||
WEIGHTING(suggestPolicy ? suggestPolicy->getWeighting() : nullptr) {}
|
WEIGHTING(suggestPolicy ? suggestPolicy->getWeighting() : nullptr) {}
|
||||||
AK_FORCE_INLINE virtual ~Suggest() {}
|
AK_FORCE_INLINE virtual ~Suggest() {}
|
||||||
int getSuggestions(ProximityInfo *pInfo, void *traverseSession, int *inputXs, int *inputYs,
|
int getSuggestions(ProximityInfo *pInfo, void *traverseSession, int *inputXs, int *inputYs,
|
||||||
int *times, int *pointerIds, int *inputCodePoints, int inputSize, int commitPoint,
|
int *times, int *pointerIds, int *inputCodePoints, int inputSize, int *outWords,
|
||||||
int *outWords, int *outputScores, int *outputIndices, int *outputTypes,
|
int *outputScores, int *outputIndices, int *outputTypes,
|
||||||
int *outputAutoCommitFirstWordConfidence) const;
|
int *outputAutoCommitFirstWordConfidence) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DISALLOW_IMPLICIT_CONSTRUCTORS(Suggest);
|
DISALLOW_IMPLICIT_CONSTRUCTORS(Suggest);
|
||||||
void createNextWordDicNode(DicTraverseSession *traverseSession, DicNode *dicNode,
|
void createNextWordDicNode(DicTraverseSession *traverseSession, DicNode *dicNode,
|
||||||
const bool spaceSubstitution) const;
|
const bool spaceSubstitution) const;
|
||||||
void initializeSearch(DicTraverseSession *traverseSession, int commitPoint) const;
|
void initializeSearch(DicTraverseSession *traverseSession) const;
|
||||||
void expandCurrentDicNodes(DicTraverseSession *traverseSession) const;
|
void expandCurrentDicNodes(DicTraverseSession *traverseSession) const;
|
||||||
void processTerminalDicNode(DicTraverseSession *traverseSession, DicNode *dicNode) const;
|
void processTerminalDicNode(DicTraverseSession *traverseSession, DicNode *dicNode) const;
|
||||||
void processExpandedDicNode(DicTraverseSession *traverseSession, DicNode *dicNode) const;
|
void processExpandedDicNode(DicTraverseSession *traverseSession, DicNode *dicNode) const;
|
||||||
|
|
|
@ -27,8 +27,8 @@ class SuggestInterface {
|
||||||
public:
|
public:
|
||||||
virtual int getSuggestions(ProximityInfo *pInfo, void *traverseSession, int *inputXs,
|
virtual int getSuggestions(ProximityInfo *pInfo, void *traverseSession, int *inputXs,
|
||||||
int *inputYs, int *times, int *pointerIds, int *inputCodePoints, int inputSize,
|
int *inputYs, int *times, int *pointerIds, int *inputCodePoints, int inputSize,
|
||||||
int commitPoint, int *outWords, int *outputScores, int *outputIndices,
|
int *outWords, int *outputScores, int *outputIndices, int *outputTypes,
|
||||||
int *outputTypes, int *outputAutoCommitFirstWordConfidence) const = 0;
|
int *outputAutoCommitFirstWordConfidence) const = 0;
|
||||||
SuggestInterface() {}
|
SuggestInterface() {}
|
||||||
virtual ~SuggestInterface() {}
|
virtual ~SuggestInterface() {}
|
||||||
private:
|
private:
|
||||||
|
|
Loading…
Reference in a new issue