diff options
author | Peng Wu <alexepico@gmail.com> | 2011-08-10 12:09:36 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2011-08-10 12:09:36 +0800 |
commit | e4fa0bfd58813a248674bd41b5dcf61e9be3bdeb (patch) | |
tree | a6a9be6736720d3adc1859b02b057493a2ce274a /src/storage/phrase_index.cpp | |
parent | 46a79d1e62a25c81f151e2e68244429ffdcf6731 (diff) | |
download | libpinyin-e4fa0bfd58813a248674bd41b5dcf61e9be3bdeb.tar.gz libpinyin-e4fa0bfd58813a248674bd41b5dcf61e9be3bdeb.tar.xz libpinyin-e4fa0bfd58813a248674bd41b5dcf61e9be3bdeb.zip |
write phrase index logger in progress
Diffstat (limited to 'src/storage/phrase_index.cpp')
-rw-r--r-- | src/storage/phrase_index.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/storage/phrase_index.cpp b/src/storage/phrase_index.cpp index 33da334..59b166f 100644 --- a/src/storage/phrase_index.cpp +++ b/src/storage/phrase_index.cpp @@ -213,6 +213,32 @@ bool FacadePhraseIndex::unload(guint8 phrase_index){ return true; } +bool FacadePhraseIndex::diff(guint8 phrase_index, MemoryChunk * oldchunk, + MemoryChunk * newlog){ + SubPhraseIndex * & sub_phrases = m_sub_phrase_indices[phrase_index]; + if ( !sub_phrases ) + return false; + + SubPhraseIndex old_sub_phrases; + old_sub_phrases.load(oldchunk, 0, oldchunk->size()); + PhraseIndexLogger logger; + + bool retval = sub_phrases->diff(&old_sub_phrases, &logger); + logger.store(newlog); + return retval; +} + +bool FacadePhraseIndex::merge(guint8 phrase_index, MemoryChunk * log){ + SubPhraseIndex * & sub_phrases = m_sub_phrase_indices[phrase_index]; + if ( !sub_phrases ) + return false; + + PhraseIndexLogger logger; + logger.load(log); + + return sub_phrases->merge(&logger); +} + bool SubPhraseIndex::load(MemoryChunk * chunk, table_offset_t offset, table_offset_t end){ //save the memory chunk |