Add TrieMap.save().

Bug: 14425059
Change-Id: Ie0b4fe8b9a157da0401bb277c703ab084d5bf9cc
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.cpp b/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.cpp
index c700476..ca79c18 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.cpp
@@ -16,6 +16,8 @@
 
 #include "suggest/policyimpl/dictionary/utils/trie_map.h"
 
+#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
+
 namespace latinime {
 
 const int TrieMap::INVALID_INDEX = -1;
@@ -98,6 +100,11 @@
     return putInternal(unsignedKey, value, getBitShuffledKey(unsignedKey), bitmapEntryIndex,
             readEntry(bitmapEntryIndex), 0 /* level */);
 }
+
+bool TrieMap::save(FILE *const file) const {
+    return DictFileWritingUtils::writeBufferToFileTail(file, &mBuffer);
+}
+
 /**
  * Iterate next entry in a certain level.
  *
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.h b/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.h
index b5bcc3b..db278f5 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.h
@@ -19,6 +19,7 @@
 
 #include <climits>
 #include <cstdint>
+#include <cstdio>
 #include <vector>
 
 #include "defines.h"
@@ -192,6 +193,8 @@
         return TrieMapRange(this, bitmapEntryIndex);
     }
 
+    bool save(FILE *const file) const;
+
  private:
     DISALLOW_COPY_AND_ASSIGN(TrieMap);