diff options
author | 2013-12-17 21:34:41 +0900 | |
---|---|---|
committer | 2014-01-30 17:08:13 +0900 | |
commit | 324adefca3f2608dcf1385dca31132c1f9dddf8f (patch) | |
tree | c8d331e203434667f952ec83d9d9873f6e6733e6 /native/jni/src/suggest/policyimpl/dictionary/header/header_policy.cpp | |
parent | 0c186c31d2dcb69a5d59afe0107878544a706c7b (diff) | |
download | latinime-324adefca3f2608dcf1385dca31132c1f9dddf8f.tar.gz latinime-324adefca3f2608dcf1385dca31132c1f9dddf8f.tar.xz latinime-324adefca3f2608dcf1385dca31132c1f9dddf8f.zip |
[HD01] Small initial refactoring
Bug: 11281748
Change-Id: I3c64c75ecd17729bdacf03048311d76ca9f37ae2
Diffstat (limited to 'native/jni/src/suggest/policyimpl/dictionary/header/header_policy.cpp')
-rw-r--r-- | native/jni/src/suggest/policyimpl/dictionary/header/header_policy.cpp | 55 |
1 files changed, 31 insertions, 24 deletions
diff --git a/native/jni/src/suggest/policyimpl/dictionary/header/header_policy.cpp b/native/jni/src/suggest/policyimpl/dictionary/header/header_policy.cpp index be7a3c228..37a5b3fe4 100644 --- a/native/jni/src/suggest/policyimpl/dictionary/header/header_policy.cpp +++ b/native/jni/src/suggest/policyimpl/dictionary/header/header_policy.cpp @@ -73,51 +73,58 @@ bool HeaderPolicy::readRequiresGermanUmlautProcessing() const { REQUIRES_GERMAN_UMLAUT_PROCESSING_KEY, false); } -bool HeaderPolicy::writeHeaderToBuffer(BufferWithExtendableBuffer *const bufferToWrite, - const bool updatesLastUpdatedTime, const bool updatesLastDecayedTime, - const int unigramCount, const int bigramCount, const int extendedRegionSize) const { +bool HeaderPolicy::fillInAndWriteHeaderToBuffer(const bool updatesLastUpdatedTime, + const bool updatesLastDecayedTime, const int unigramCount, const int bigramCount, + const int extendedRegionSize, BufferWithExtendableBuffer *const outBuffer) const { int writingPos = 0; - if (!HeaderReadWriteUtils::writeDictionaryVersion(bufferToWrite, mDictFormatVersion, + HeaderReadWriteUtils::AttributeMap attributeMapToWrite(mAttributeMap); + fillInHeader(updatesLastDecayedTime, updatesLastDecayedTime, + unigramCount, bigramCount, extendedRegionSize, &attributeMapToWrite); + if (!HeaderReadWriteUtils::writeDictionaryVersion(outBuffer, mDictFormatVersion, &writingPos)) { return false; } - if (!HeaderReadWriteUtils::writeDictionaryFlags(bufferToWrite, mDictionaryFlags, + if (!HeaderReadWriteUtils::writeDictionaryFlags(outBuffer, mDictionaryFlags, &writingPos)) { return false; } // Temporarily writes a dummy header size. int headerSizeFieldPos = writingPos; - if (!HeaderReadWriteUtils::writeDictionaryHeaderSize(bufferToWrite, 0 /* size */, + if (!HeaderReadWriteUtils::writeDictionaryHeaderSize(outBuffer, 0 /* size */, &writingPos)) { return false; } - HeaderReadWriteUtils::AttributeMap attributeMapTowrite(mAttributeMap); - HeaderReadWriteUtils::setIntAttribute(&attributeMapTowrite, UNIGRAM_COUNT_KEY, unigramCount); - HeaderReadWriteUtils::setIntAttribute(&attributeMapTowrite, BIGRAM_COUNT_KEY, bigramCount); - HeaderReadWriteUtils::setIntAttribute(&attributeMapTowrite, EXTENDED_REGION_SIZE_KEY, - extendedRegionSize); - if (updatesLastUpdatedTime) { - // Set current time as a last updated time. - HeaderReadWriteUtils::setIntAttribute(&attributeMapTowrite, LAST_UPDATED_TIME_KEY, - TimeKeeper::peekCurrentTime()); - } - if (updatesLastDecayedTime) { - // Set current time as a last updated time. - HeaderReadWriteUtils::setIntAttribute(&attributeMapTowrite, LAST_DECAYED_TIME_KEY, - TimeKeeper::peekCurrentTime()); - } - if (!HeaderReadWriteUtils::writeHeaderAttributes(bufferToWrite, &attributeMapTowrite, + if (!HeaderReadWriteUtils::writeHeaderAttributes(outBuffer, &attributeMapToWrite, &writingPos)) { return false; } - // Writes an actual header size. - if (!HeaderReadWriteUtils::writeDictionaryHeaderSize(bufferToWrite, writingPos, + // Writes the actual header size. + if (!HeaderReadWriteUtils::writeDictionaryHeaderSize(outBuffer, writingPos, &headerSizeFieldPos)) { return false; } return true; } +void HeaderPolicy::fillInHeader(const bool updatesLastUpdatedTime, + const bool updatesLastDecayedTime, const int unigramCount, const int bigramCount, + const int extendedRegionSize, HeaderReadWriteUtils::AttributeMap *outAttributeMap) const { + HeaderReadWriteUtils::setIntAttribute(outAttributeMap, UNIGRAM_COUNT_KEY, unigramCount); + HeaderReadWriteUtils::setIntAttribute(outAttributeMap, BIGRAM_COUNT_KEY, bigramCount); + HeaderReadWriteUtils::setIntAttribute(outAttributeMap, EXTENDED_REGION_SIZE_KEY, + extendedRegionSize); + if (updatesLastUpdatedTime) { + // Set current time as the last updated time. + HeaderReadWriteUtils::setIntAttribute(outAttributeMap, LAST_UPDATED_TIME_KEY, + TimeKeeper::peekCurrentTime()); + } + if (updatesLastDecayedTime) { + // Set current time as the last updated time. + HeaderReadWriteUtils::setIntAttribute(outAttributeMap, LAST_DECAYED_TIME_KEY, + TimeKeeper::peekCurrentTime()); + } +} + /* static */ HeaderReadWriteUtils::AttributeMap HeaderPolicy::createAttributeMapAndReadAllAttributes(const uint8_t *const dictBuf) { HeaderReadWriteUtils::AttributeMap attributeMap; |