SEARCH_CONTINUED = 0x02 /* has longer word in the storage to search */
};
-enum AddIndexResult{
- INSERT_OK = 0 , /* insert ok */
- INSERT_ITEM_EXISTS /* item already exists */
-};
-
-enum RemoveIndexResult{
- REMOVE_OK = 0, /* remove ok */
- REMOVE_ITEM_DONOT_EXISTS /* item don't exists */
-};
-
/* For Phrase Index */
-enum PhraseIndexResult{
+enum ErrorResult{
ERROR_OK = 0, /* operate ok */
+ ERROR_INSERT_ITEM_EXISTS, /* item already exists */
+ ERROR_REMOVE_ITEM_DONOT_EXISTS, /* item don't exists */
ERROR_NO_SUB_PHRASE_INDEX, /* sub phrase index is not loaded */
ERROR_NO_ITEM, /* item has a null slot */
ERROR_OUT_OF_RANGE, /* beyond the end of the sub phrase index */
typedef GArray * BigramPhraseArray; /* Array of BigramPhraseItem */
typedef GArray * BigramPhraseWithCountArray; /* Array of BigramPhraseItemWithCount */
-/*
- * n-gram Definition
- * n-gram library
- */
-
-enum AttachOption{
- ATTACH_NEW_FILE = 1,
- ATTACH_READ = 2,
- ATTACH_READ_WRITE = 3
-};
-
#define MAX_PHRASE_LENGTH 16
const phrase_token_t null_token = 0;
if (length_array)
return length_array->remove_index(phrase_length - 1, keys + 1, token);
- return REMOVE_ITEM_DONOT_EXISTS;
+ return ERROR_REMOVE_ITEM_DONOT_EXISTS;
}
int ChewingLengthIndexLevel::add_index(int phrase_length,
assert(phrase_length + 1 < MAX_PHRASE_LENGTH);
if (m_chewing_array_indexes->len <= phrase_length)
- return REMOVE_ITEM_DONOT_EXISTS;
+ return ERROR_REMOVE_ITEM_DONOT_EXISTS;
#define CASE(len) case len: \
{ \
(m_chewing_array_indexes, \
ChewingArrayIndexLevel<len> *, len); \
if (NULL == array) \
- return REMOVE_ITEM_DONOT_EXISTS; \
+ return ERROR_REMOVE_ITEM_DONOT_EXISTS; \
return array->remove_index(keys, token); \
}
for (cur_elem = range.first;
cur_elem != range.second; ++cur_elem) {
if (cur_elem->m_token == token)
- return INSERT_ITEM_EXISTS;
+ return ERROR_INSERT_ITEM_EXISTS;
if (cur_elem->m_token > token)
break;
}
int offset = (cur_elem - begin) * sizeof(IndexItem);
m_chunk.insert_content(offset, &add_elem, sizeof(IndexItem));
- return INSERT_OK;
+ return ERROR_OK;
}
template<int phrase_length>
}
if (cur_elem == range.second)
- return REMOVE_ITEM_DONOT_EXISTS;
+ return ERROR_REMOVE_ITEM_DONOT_EXISTS;
int offset = (cur_elem - begin) * sizeof(IndexItem);
m_chunk.remove_content(offset, sizeof(IndexItem));
- return REMOVE_OK;
+ return ERROR_OK;
}
PhraseLengthIndexLevel * &length_array = m_phrase_length_indexes[first_key];
if ( length_array )
return length_array->remove_index(phrase_length, phrase, token);
- return REMOVE_ITEM_DONOT_EXISTS;
+ return ERROR_REMOVE_ITEM_DONOT_EXISTS;
}
int PhraseLengthIndexLevel::add_index( int phrase_length, /* in */ ucs4_t phrase[], /* in */ phrase_token_t token){
int PhraseLengthIndexLevel::remove_index( int phrase_length, /* in */ ucs4_t phrase[], /* out */ phrase_token_t & token){
assert(phrase_length + 1 < MAX_PHRASE_LENGTH);
if ( m_phrase_array_indexes -> len <= phrase_length )
- return REMOVE_ITEM_DONOT_EXISTS;
+ return ERROR_REMOVE_ITEM_DONOT_EXISTS;
#define CASE(len) case len: \
{ \
PhraseArrayIndexLevel<len> * &array = g_array_index \
(m_phrase_array_indexes, PhraseArrayIndexLevel<len> *, len); \
if ( !array ) \
- return REMOVE_ITEM_DONOT_EXISTS; \
+ return ERROR_REMOVE_ITEM_DONOT_EXISTS; \
return array->remove_index(phrase, token); \
}
assert(range.second - range.first <= 1);
if ( range.second - range.first == 1 )
- return INSERT_ITEM_EXISTS;
+ return ERROR_INSERT_ITEM_EXISTS;
PhraseIndexItem<phrase_length> * cur_elem = range.first;
int offset = (cur_elem - buf_begin) *
sizeof(PhraseIndexItem<phrase_length>);
m_chunk.insert_content(offset, &new_elem,
sizeof(PhraseIndexItem<phrase_length> ));
- return INSERT_OK;
+ return ERROR_OK;
}
template<size_t phrase_length>
assert(range.second - range.first <= 1);
PhraseIndexItem<phrase_length> * cur_elem = range.first;
if ( range.first == range.second || cur_elem == buf_end)
- return REMOVE_ITEM_DONOT_EXISTS;
+ return ERROR_REMOVE_ITEM_DONOT_EXISTS;
token = cur_elem->m_token;
int offset = (cur_elem - buf_begin) *
sizeof(PhraseIndexItem<phrase_length>);
m_chunk.remove_content(offset, sizeof (PhraseIndexItem<phrase_length>));
- return REMOVE_OK;
+ return ERROR_OK;
}
bool PhraseLargeTable::load_text(FILE * infile){