Loading native/jni/src/suggest/core/dictionary/binary_dictionary_shortcut_iterator.h +7 −1 Original line number Diff line number Diff line Loading @@ -31,6 +31,11 @@ class BinaryDictionaryShortcutIterator { mPos(shortcutStructurePolicy->getStartPos(shortcutPos)), mHasNextShortcutTarget(shortcutPos != NOT_A_DICT_POS) {} BinaryDictionaryShortcutIterator(const BinaryDictionaryShortcutIterator &&shortcutIterator) : mShortcutStructurePolicy(shortcutIterator.mShortcutStructurePolicy), mPos(shortcutIterator.mPos), mHasNextShortcutTarget(shortcutIterator.mHasNextShortcutTarget) {} AK_FORCE_INLINE bool hasNextShortcutTarget() const { return mHasNextShortcutTarget; } Loading @@ -45,7 +50,8 @@ class BinaryDictionaryShortcutIterator { } private: DISALLOW_IMPLICIT_CONSTRUCTORS(BinaryDictionaryShortcutIterator); DISALLOW_DEFAULT_CONSTRUCTOR(BinaryDictionaryShortcutIterator); DISALLOW_ASSIGNMENT_OPERATOR(BinaryDictionaryShortcutIterator); const DictionaryShortcutsStructurePolicy *const mShortcutStructurePolicy; int mPos; Loading native/jni/src/suggest/core/policy/dictionary_structure_with_buffer_policy.h +2 −4 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include <memory> #include "defines.h" #include "suggest/core/dictionary/binary_dictionary_shortcut_iterator.h" #include "suggest/core/dictionary/property/word_property.h" #include "utils/int_array_view.h" Loading @@ -28,7 +29,6 @@ namespace latinime { class DicNode; class DicNodeVector; class DictionaryHeaderStructurePolicy; class DictionaryShortcutsStructurePolicy; class NgramListener; class PrevWordsInfo; class UnigramProperty; Loading Loading @@ -63,12 +63,10 @@ class DictionaryStructureWithBufferPolicy { virtual void iterateNgramEntries(const int *const prevWordIds, NgramListener *const listener) const = 0; virtual int getShortcutPositionOfPtNode(const int ptNodePos) const = 0; virtual BinaryDictionaryShortcutIterator getShortcutIterator(const int ptNodePos) const = 0; virtual const DictionaryHeaderStructurePolicy *getHeaderStructurePolicy() const = 0; virtual const DictionaryShortcutsStructurePolicy *getShortcutsStructurePolicy() const = 0; // Returns whether the update was success or not. virtual bool addUnigramEntry(const CodePointArrayView wordCodePoints, const UnigramProperty *const unigramProperty) = 0; Loading native/jni/src/suggest/core/result/suggestions_output_utils.cpp +3 −4 Original line number Diff line number Diff line Loading @@ -139,10 +139,9 @@ const int SuggestionsOutputUtils::MIN_LEN_FOR_MULTI_WORD_AUTOCORRECT = 16; // Shortcut is not supported for multiple words suggestions. // TODO: Check shortcuts during traversal for multiple words suggestions. if (!terminalDicNode->hasMultipleWords()) { BinaryDictionaryShortcutIterator shortcutIt( traverseSession->getDictionaryStructurePolicy()->getShortcutsStructurePolicy(), traverseSession->getDictionaryStructurePolicy() ->getShortcutPositionOfPtNode(terminalDicNode->getPtNodePos())); BinaryDictionaryShortcutIterator shortcutIt = traverseSession->getDictionaryStructurePolicy()->getShortcutIterator( terminalDicNode->getPtNodePos()); const bool sameAsTyped = scoringPolicy->sameAsTyped(traverseSession, terminalDicNode); outputShortcuts(&shortcutIt, finalScore, sameAsTyped, outSuggestionResults); } Loading native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -174,6 +174,12 @@ void Ver4PatriciaTriePolicy::iterateNgramEntries(const int *const prevWordIds, } } BinaryDictionaryShortcutIterator Ver4PatriciaTriePolicy::getShortcutIterator( const int ptNodePos) const { const int shortcutPos = getShortcutPositionOfPtNode(ptNodePos); return BinaryDictionaryShortcutIterator(&mShortcutPolicy, shortcutPos); } int Ver4PatriciaTriePolicy::getShortcutPositionOfPtNode(const int ptNodePos) const { if (ptNodePos == NOT_A_DICT_POS) { return NOT_A_DICT_POS; Loading native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h +3 −5 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ #include "defines.h" #include "suggest/core/dictionary/binary_dictionary_bigrams_iterator.h" #include "suggest/core/dictionary/binary_dictionary_shortcut_iterator.h" #include "suggest/core/policy/dictionary_structure_with_buffer_policy.h" #include "suggest/policyimpl/dictionary/header/header_policy.h" #include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.h" Loading Loading @@ -96,16 +97,12 @@ class Ver4PatriciaTriePolicy : public DictionaryStructureWithBufferPolicy { void iterateNgramEntries(const int *const prevWordIds, NgramListener *const listener) const; int getShortcutPositionOfPtNode(const int ptNodePos) const; BinaryDictionaryShortcutIterator getShortcutIterator(const int ptNodePos) const; const DictionaryHeaderStructurePolicy *getHeaderStructurePolicy() const { return mHeaderPolicy; } const DictionaryShortcutsStructurePolicy *getShortcutsStructurePolicy() const { return &mShortcutPolicy; } bool addUnigramEntry(const CodePointArrayView wordCodePoints, const UnigramProperty *const unigramProperty); Loading Loading @@ -163,6 +160,7 @@ class Ver4PatriciaTriePolicy : public DictionaryStructureWithBufferPolicy { mutable bool mIsCorrupted; int getBigramsPositionOfPtNode(const int ptNodePos) const; int getShortcutPositionOfPtNode(const int ptNodePos) const; int getWordIdFromTerminalPtNodePos(const int ptNodePos) const; int getTerminalPtNodePosFromWordId(const int wordId) const; }; Loading Loading
native/jni/src/suggest/core/dictionary/binary_dictionary_shortcut_iterator.h +7 −1 Original line number Diff line number Diff line Loading @@ -31,6 +31,11 @@ class BinaryDictionaryShortcutIterator { mPos(shortcutStructurePolicy->getStartPos(shortcutPos)), mHasNextShortcutTarget(shortcutPos != NOT_A_DICT_POS) {} BinaryDictionaryShortcutIterator(const BinaryDictionaryShortcutIterator &&shortcutIterator) : mShortcutStructurePolicy(shortcutIterator.mShortcutStructurePolicy), mPos(shortcutIterator.mPos), mHasNextShortcutTarget(shortcutIterator.mHasNextShortcutTarget) {} AK_FORCE_INLINE bool hasNextShortcutTarget() const { return mHasNextShortcutTarget; } Loading @@ -45,7 +50,8 @@ class BinaryDictionaryShortcutIterator { } private: DISALLOW_IMPLICIT_CONSTRUCTORS(BinaryDictionaryShortcutIterator); DISALLOW_DEFAULT_CONSTRUCTOR(BinaryDictionaryShortcutIterator); DISALLOW_ASSIGNMENT_OPERATOR(BinaryDictionaryShortcutIterator); const DictionaryShortcutsStructurePolicy *const mShortcutStructurePolicy; int mPos; Loading
native/jni/src/suggest/core/policy/dictionary_structure_with_buffer_policy.h +2 −4 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include <memory> #include "defines.h" #include "suggest/core/dictionary/binary_dictionary_shortcut_iterator.h" #include "suggest/core/dictionary/property/word_property.h" #include "utils/int_array_view.h" Loading @@ -28,7 +29,6 @@ namespace latinime { class DicNode; class DicNodeVector; class DictionaryHeaderStructurePolicy; class DictionaryShortcutsStructurePolicy; class NgramListener; class PrevWordsInfo; class UnigramProperty; Loading Loading @@ -63,12 +63,10 @@ class DictionaryStructureWithBufferPolicy { virtual void iterateNgramEntries(const int *const prevWordIds, NgramListener *const listener) const = 0; virtual int getShortcutPositionOfPtNode(const int ptNodePos) const = 0; virtual BinaryDictionaryShortcutIterator getShortcutIterator(const int ptNodePos) const = 0; virtual const DictionaryHeaderStructurePolicy *getHeaderStructurePolicy() const = 0; virtual const DictionaryShortcutsStructurePolicy *getShortcutsStructurePolicy() const = 0; // Returns whether the update was success or not. virtual bool addUnigramEntry(const CodePointArrayView wordCodePoints, const UnigramProperty *const unigramProperty) = 0; Loading
native/jni/src/suggest/core/result/suggestions_output_utils.cpp +3 −4 Original line number Diff line number Diff line Loading @@ -139,10 +139,9 @@ const int SuggestionsOutputUtils::MIN_LEN_FOR_MULTI_WORD_AUTOCORRECT = 16; // Shortcut is not supported for multiple words suggestions. // TODO: Check shortcuts during traversal for multiple words suggestions. if (!terminalDicNode->hasMultipleWords()) { BinaryDictionaryShortcutIterator shortcutIt( traverseSession->getDictionaryStructurePolicy()->getShortcutsStructurePolicy(), traverseSession->getDictionaryStructurePolicy() ->getShortcutPositionOfPtNode(terminalDicNode->getPtNodePos())); BinaryDictionaryShortcutIterator shortcutIt = traverseSession->getDictionaryStructurePolicy()->getShortcutIterator( terminalDicNode->getPtNodePos()); const bool sameAsTyped = scoringPolicy->sameAsTyped(traverseSession, terminalDicNode); outputShortcuts(&shortcutIt, finalScore, sameAsTyped, outSuggestionResults); } Loading
native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -174,6 +174,12 @@ void Ver4PatriciaTriePolicy::iterateNgramEntries(const int *const prevWordIds, } } BinaryDictionaryShortcutIterator Ver4PatriciaTriePolicy::getShortcutIterator( const int ptNodePos) const { const int shortcutPos = getShortcutPositionOfPtNode(ptNodePos); return BinaryDictionaryShortcutIterator(&mShortcutPolicy, shortcutPos); } int Ver4PatriciaTriePolicy::getShortcutPositionOfPtNode(const int ptNodePos) const { if (ptNodePos == NOT_A_DICT_POS) { return NOT_A_DICT_POS; Loading
native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h +3 −5 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ #include "defines.h" #include "suggest/core/dictionary/binary_dictionary_bigrams_iterator.h" #include "suggest/core/dictionary/binary_dictionary_shortcut_iterator.h" #include "suggest/core/policy/dictionary_structure_with_buffer_policy.h" #include "suggest/policyimpl/dictionary/header/header_policy.h" #include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.h" Loading Loading @@ -96,16 +97,12 @@ class Ver4PatriciaTriePolicy : public DictionaryStructureWithBufferPolicy { void iterateNgramEntries(const int *const prevWordIds, NgramListener *const listener) const; int getShortcutPositionOfPtNode(const int ptNodePos) const; BinaryDictionaryShortcutIterator getShortcutIterator(const int ptNodePos) const; const DictionaryHeaderStructurePolicy *getHeaderStructurePolicy() const { return mHeaderPolicy; } const DictionaryShortcutsStructurePolicy *getShortcutsStructurePolicy() const { return &mShortcutPolicy; } bool addUnigramEntry(const CodePointArrayView wordCodePoints, const UnigramProperty *const unigramProperty); Loading Loading @@ -163,6 +160,7 @@ class Ver4PatriciaTriePolicy : public DictionaryStructureWithBufferPolicy { mutable bool mIsCorrupted; int getBigramsPositionOfPtNode(const int ptNodePos) const; int getShortcutPositionOfPtNode(const int ptNodePos) const; int getWordIdFromTerminalPtNodePos(const int ptNodePos) const; int getTerminalPtNodePosFromWordId(const int wordId) const; }; Loading