aboutsummaryrefslogtreecommitdiffstats
path: root/native/jni/src/suggest/policyimpl/dictionary/header/header_policy.cpp
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2013-12-17 21:34:41 +0900
committerJean Chalard <jchalard@google.com>2014-01-30 17:08:13 +0900
commit324adefca3f2608dcf1385dca31132c1f9dddf8f (patch)
treec8d331e203434667f952ec83d9d9873f6e6733e6 /native/jni/src/suggest/policyimpl/dictionary/header/header_policy.cpp
parent0c186c31d2dcb69a5d59afe0107878544a706c7b (diff)
downloadlatinime-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.cpp55
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;