diff options
Diffstat (limited to 'native/jni/src')
3 files changed, 31 insertions, 17 deletions
diff --git a/native/jni/src/suggest/core/dictionary/binary_dictionary_info.h b/native/jni/src/suggest/core/dictionary/binary_dictionary_info.h index 0b77e5ee9..e0b583588 100644 --- a/native/jni/src/suggest/core/dictionary/binary_dictionary_info.h +++ b/native/jni/src/suggest/core/dictionary/binary_dictionary_info.h @@ -29,15 +29,29 @@ class BinaryDictionaryHeader; class BinaryDictionaryInfo { public: - BinaryDictionaryInfo(const uint8_t *const dictBuf, const int dictSize) - : mDictBuf(dictBuf), - mDictionaryFormat(BinaryDictionaryFormat::detectFormatVersion(mDictBuf, dictSize)), + BinaryDictionaryInfo(const uint8_t *const dictBuf, const int dictSize, const int mmapFd, + const int dictBufOffset, const bool isUpdatable) + : mDictBuf(dictBuf), mDictSize(dictSize), mMmapFd(mmapFd), + mDictBufOffset(dictBufOffset), mIsUpdatable(isUpdatable), + mDictionaryFormat(BinaryDictionaryFormat::detectFormatVersion(mDictBuf, mDictSize)), mDictionaryHeader(this), mDictRoot(mDictBuf + mDictionaryHeader.getSize()) {} AK_FORCE_INLINE const uint8_t *getDictBuf() const { return mDictBuf; } + AK_FORCE_INLINE int getDictSize() const { + return mDictSize; + } + + AK_FORCE_INLINE int getMmapFd() const { + return mMmapFd; + } + + AK_FORCE_INLINE int getDictBufOffset() const { + return mDictBufOffset; + } + AK_FORCE_INLINE const uint8_t *getDictRoot() const { return mDictRoot; } @@ -54,10 +68,20 @@ class BinaryDictionaryInfo { return &mDictionaryHeader; } + AK_FORCE_INLINE bool isDynamicallyUpdatable() const { + // TODO: Support dynamic dictionary formats. + const bool isUpdatableDictionaryFormat = false; + return mIsUpdatable && isUpdatableDictionaryFormat; + } + private: DISALLOW_COPY_AND_ASSIGN(BinaryDictionaryInfo); const uint8_t *const mDictBuf; + const int mDictSize; + const int mMmapFd; + const int mDictBufOffset; + const bool mIsUpdatable; const BinaryDictionaryFormat::FORMAT_VERSION mDictionaryFormat; const BinaryDictionaryHeader mDictionaryHeader; const uint8_t *const mDictRoot; diff --git a/native/jni/src/suggest/core/dictionary/dictionary.cpp b/native/jni/src/suggest/core/dictionary/dictionary.cpp index 27b052b7e..028b61506 100644 --- a/native/jni/src/suggest/core/dictionary/dictionary.cpp +++ b/native/jni/src/suggest/core/dictionary/dictionary.cpp @@ -32,10 +32,9 @@ namespace latinime { -Dictionary::Dictionary(void *dict, int dictSize, int mmapFd, int dictBufAdjust) - : mBinaryDictionaryInfo(static_cast<const uint8_t *>(dict), dictSize), - mDictSize(dictSize), - mMmapFd(mmapFd), mDictBufAdjust(dictBufAdjust), +Dictionary::Dictionary(void *dict, int dictSize, int mmapFd, int dictBufOffset, bool isUpdatable) + : mBinaryDictionaryInfo(static_cast<const uint8_t *>(dict), dictSize, mmapFd, + dictBufOffset, isUpdatable), mBigramDictionary(new BigramDictionary(&mBinaryDictionaryInfo)), mGestureSuggest(new Suggest(GestureSuggestPolicyFactory::getGestureSuggestPolicy())), mTypingSuggest(new Suggest(TypingSuggestPolicyFactory::getTypingSuggestPolicy())) { diff --git a/native/jni/src/suggest/core/dictionary/dictionary.h b/native/jni/src/suggest/core/dictionary/dictionary.h index 151f26183..afd081841 100644 --- a/native/jni/src/suggest/core/dictionary/dictionary.h +++ b/native/jni/src/suggest/core/dictionary/dictionary.h @@ -52,7 +52,7 @@ class Dictionary { static const int KIND_FLAG_POSSIBLY_OFFENSIVE = 0x80000000; static const int KIND_FLAG_EXACT_MATCH = 0x40000000; - Dictionary(void *dict, int dictSize, int mmapFd, int dictBufAdjust); + Dictionary(void *dict, int dictSize, int mmapFd, int dictBufOffset, bool isUpdatable); int getSuggestions(ProximityInfo *proximityInfo, DicTraverseSession *traverseSession, int *xcoordinates, int *ycoordinates, int *times, int *pointerIds, int *inputCodePoints, @@ -68,21 +68,12 @@ class Dictionary { const BinaryDictionaryInfo *getBinaryDictionaryInfo() const { return &mBinaryDictionaryInfo; } - int getDictSize() const { return mDictSize; } - int getMmapFd() const { return mMmapFd; } - int getDictBufAdjust() const { return mDictBufAdjust; } virtual ~Dictionary(); private: DISALLOW_IMPLICIT_CONSTRUCTORS(Dictionary); const BinaryDictionaryInfo mBinaryDictionaryInfo; - // Used only for the mmap version of dictionary loading, but we use these as dummy variables - // also for the malloc version. - const int mDictSize; - const int mMmapFd; - const int mDictBufAdjust; - const BigramDictionary *mBigramDictionary; SuggestInterface *mGestureSuggest; SuggestInterface *mTypingSuggest; |