summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2010-10-09 15:05:09 +0800
committerPeng Wu <alexepico@gmail.com>2010-10-09 15:05:09 +0800
commit6c9813e7e9afa18720912fa737cc21915756b84c (patch)
treeda2c9f3050aec080859e569032525ed8389cade4
parent08a4bfb28ff0690c4161b6744c6152a894db74e9 (diff)
downloadlibpinyin-6c9813e7e9afa18720912fa737cc21915756b84c.tar.gz
libpinyin-6c9813e7e9afa18720912fa737cc21915756b84c.tar.xz
libpinyin-6c9813e7e9afa18720912fa737cc21915756b84c.zip
re-factor pinyin large table
-rw-r--r--src/storage/pinyin_large_table.cpp48
-rwxr-xr-xsrc/storage/pinyin_large_table.h39
2 files changed, 48 insertions, 39 deletions
diff --git a/src/storage/pinyin_large_table.cpp b/src/storage/pinyin_large_table.cpp
index d24533c..0a1a8db 100644
--- a/src/storage/pinyin_large_table.cpp
+++ b/src/storage/pinyin_large_table.cpp
@@ -27,6 +27,54 @@
#include "pinyin_large_table.h"
+/* class definition */
+
+namespace novel{
+
+class PinyinLengthIndexLevel{
+protected:
+ GArray* m_pinyin_array_indexes;
+public:
+ PinyinLengthIndexLevel();
+ ~PinyinLengthIndexLevel();
+ bool load(MemoryChunk * chunk, table_offset_t offset, table_offset_t end);
+ bool store(MemoryChunk * new_chunk, table_offset_t offset, table_offset_t & end);
+
+ /*search/add_index method */
+ int search( int phrase_length, /* in */ PinyinCustomSettings * custom,
+ /* in */ PinyinKey keys[],
+ /* out */ PhraseIndexRanges ranges);
+ int add_index( int phrase_length, /* in */ PinyinKey keys[], /* in */ phrase_token_t token);
+ int remove_index( int phrase_length, /* in */ PinyinKey keys[], /* in */ phrase_token_t token);
+};
+
+template<size_t phrase_length>
+class PinyinArrayIndexLevel{
+protected:
+ MemoryChunk m_chunk;
+ int convert(PinyinCustomSettings * custom,
+ PinyinKey keys[],
+ PinyinIndexItem<phrase_length> * begin,
+ PinyinIndexItem<phrase_length> * end,
+ PhraseIndexRanges ranges);
+public:
+ bool load(MemoryChunk * chunk, table_offset_t offset, table_offset_t end);
+ bool store(MemoryChunk * new_chunk, table_offset_t offset, table_offset_t & end);
+
+ /*search/add_index method */
+ int search(/* in */ PinyinCustomSettings * custom,
+ /* in */ PinyinKey keys[],
+ /* out */ PhraseIndexRanges ranges);
+ int add_index(/* in */ PinyinKey keys[], /* in */ phrase_token_t token);
+ int remove_index(/* in */ PinyinKey keys[], /* in */ phrase_token_t token);
+};
+
+};
+
+using namespace novel;
+
+/* class implementation */
+
PinyinBitmapIndexLevel::PinyinBitmapIndexLevel(PinyinCustomSettings * custom)
:m_custom(custom){
memset(m_pinyin_length_indexes, 0, sizeof(m_pinyin_length_indexes));
diff --git a/src/storage/pinyin_large_table.h b/src/storage/pinyin_large_table.h
index b482657..6e8bb85 100755
--- a/src/storage/pinyin_large_table.h
+++ b/src/storage/pinyin_large_table.h
@@ -65,45 +65,6 @@ public:
int remove_index( int phrase_length, /* in */ PinyinKey keys[], /* in */ phrase_token_t token);
};
-class PinyinLengthIndexLevel{
-protected:
- GArray* m_pinyin_array_indexes;
-public:
- PinyinLengthIndexLevel();
- ~PinyinLengthIndexLevel();
- bool load(MemoryChunk * chunk, table_offset_t offset, table_offset_t end);
- bool store(MemoryChunk * new_chunk, table_offset_t offset, table_offset_t & end);
-
- /*search/add_index method */
- int search( int phrase_length, /* in */ PinyinCustomSettings * custom,
- /* in */ PinyinKey keys[],
- /* out */ PhraseIndexRanges ranges);
- int add_index( int phrase_length, /* in */ PinyinKey keys[], /* in */ phrase_token_t token);
- int remove_index( int phrase_length, /* in */ PinyinKey keys[], /* in */ phrase_token_t token);
-};
-
-template<size_t phrase_length>
-class PinyinArrayIndexLevel{
-protected:
- MemoryChunk m_chunk;
- int convert(PinyinCustomSettings * custom,
- PinyinKey keys[],
- PinyinIndexItem<phrase_length> * begin,
- PinyinIndexItem<phrase_length> * end,
- PhraseIndexRanges ranges);
-public:
- bool load(MemoryChunk * chunk, table_offset_t offset, table_offset_t end);
- bool store(MemoryChunk * new_chunk, table_offset_t offset, table_offset_t & end);
-
- /*search/add_index method */
- int search(/* in */ PinyinCustomSettings * custom,
- /* in */ PinyinKey keys[],
- /* out */ PhraseIndexRanges ranges);
- int add_index(/* in */ PinyinKey keys[], /* in */ phrase_token_t token);
- int remove_index(/* in */ PinyinKey keys[], /* in */ phrase_token_t token);
-};
-
-
/* TODO: add file version check */
class PinyinLargeTable{
protected: