begin to write add/remove index
authorPeng Wu <alexepico@gmail.com>
Tue, 28 Aug 2012 02:56:12 +0000 (10:56 +0800)
committerPeng Wu <alexepico@gmail.com>
Tue, 28 Aug 2012 02:56:12 +0000 (10:56 +0800)
src/storage/phrase_large_table2.cpp

index 4a0d969..e42b530 100644 (file)
@@ -257,3 +257,30 @@ int PhraseArrayIndexLevel2<phrase_length>::search
     return result;
 }
 
+int PhraseBitmapIndexLevel2::add_index(int phrase_length,
+                                       /* in */ ucs4_t phrase[],
+                                       /* in */ phrase_token_t token){
+    guint8 first_key =  (phrase[0] & 0xFF00) >> 8;
+
+    PhraseLengthIndexLevel2 * & length_array =
+        m_phrase_length_indexes[first_key];
+
+    if ( !length_array ){
+        length_array = new PhraseLengthIndexLevel2();
+    }
+    return length_array->add_index(phrase_length, phrase, token);
+}
+
+int PhraseBitmapIndexLevel2::remove_index(int phrase_length,
+                                         /* in */ ucs4_t phrase[],
+                                         /* in */ phrase_token_t token){
+    guint8 first_key = (phrase[0] & 0xFF00) >> 8;
+
+    PhraseLengthIndexLevel2 * & length_array =
+        m_phrase_length_indexes[first_key];
+
+    if ( length_array )
+        return length_array->remove_index(phrase_length, phrase, token);
+
+    return ERROR_REMOVE_ITEM_DONOT_EXISTS;
+}