typedef GArray * FlexibleBigramPhraseArray;
+/**
+ * FlexibleSingleGram:
+ * @ArrayHeader: the struct ArrayHeader.
+ * @ArrayItem: the struct ArrayItem.
+ *
+ * The flexible single gram is mainly used for training purpose.
+ *
+ */
+
template<typename ArrayHeader, typename ArrayItem>
class FlexibleSingleGram{
template<typename MH, typename AH,
m_chunk.set_chunk(buffer, length, NULL);
}
public:
- /* item typedefs */
+ /**
+ * ArrayItemWithToken:
+ *
+ * Define the struct ArrayItemWithToken type.
+ *
+ */
typedef struct{
phrase_token_t m_token;
ArrayItem m_item;
}
public:
- /* Null Constructor */
+ /**
+ * FlexibleSingleGram::FlexibleSingleGram:
+ *
+ * The constructor of the FlexibleSingleGram.
+ *
+ */
FlexibleSingleGram(){
m_chunk.set_size(sizeof(ArrayHeader));
memset(m_chunk.begin(), 0, sizeof(ArrayHeader));
}
- /* retrieve all items */
+ /**
+ * FlexibleSingleGram::retrieve_all:
+ * @array: the array to store all items in this single gram.
+ * @returns: whether the retrieve operation is successful.
+ *
+ * Retrieve all items in this single gram.
+ *
+ */
bool retrieve_all(/* out */ FlexibleBigramPhraseArray array){
const ArrayItemWithToken * begin = (const ArrayItemWithToken *)
((const char *)(m_chunk.begin()) + sizeof(ArrayHeader));
return true;
}
- /* search method */
- /* the array result contains many items */
+ /**
+ * FlexibleSingleGram::search:
+ * @range: the token range.
+ * @array: the array to store the array items with token in the range.
+ * @returns: whether the search operation is successful.
+ *
+ * Search the array items with token in the range.
+ *
+ * Note: The array result may contain many items.
+ *
+ */
bool search(/* in */ PhraseIndexRange * range,
/* out */ FlexibleBigramPhraseArray array){
const ArrayItemWithToken * begin = (const ArrayItemWithToken *)
return true;
}
- /* insert array item */
+ /**
+ * FlexibleSingleGram::insert_array_item:
+ * @token: the phrase token to be inserted.
+ * @item: the array item of this token.
+ * @returns: whether the insert operation is successful.
+ *
+ * Insert the array item of the token.
+ *
+ */
bool insert_array_item(/* in */ phrase_token_t token,
/* in */ const ArrayItem & item){
ArrayItemWithToken * begin = (ArrayItemWithToken *)
return true;
}
+ /**
+ * FlexibleSingleGram::remove_array_item:
+ * @token: the phrase token to be removed.
+ * @item: the content of the removed array item.
+ * @returns: whether the remove operation is successful.
+ *
+ * Remove the array item of the token.
+ *
+ */
bool remove_array_item(/* in */ phrase_token_t token,
/* out */ ArrayItem & item)
{
return false;
}
- /* get array item */
+ /**
+ * FlexibleSingleGram::get_array_item:
+ * @token: the phrase token.
+ * @item: the array item of the token.
+ * @returns: whether the get operation is successful.
+ *
+ * Get the array item of the token.
+ *
+ */
bool get_array_item(/* in */ phrase_token_t token,
/* out */ ArrayItem & item)
{
return false;
}
- /* set array item */
+ /**
+ * FlexibleSingleGram::set_array_item:
+ * @token: the phrase token.
+ * @item: the array item of the token.
+ * @returns: whether the set operation is successful.
+ *
+ * Set the array item of the token.
+ *
+ */
bool set_array_item(/* in */ phrase_token_t token,
/* in */ const ArrayItem & item){
ArrayItemWithToken * begin = (ArrayItemWithToken *)
return false;
}
- /* get array header */
+ /**
+ * FlexibleSingleGram::get_array_header:
+ * @header: the array header of this single gram.
+ * @returns: whether the get operation is successful.
+ *
+ * Get the array header of this single gram.
+ *
+ */
bool get_array_header(/* out */ ArrayHeader & header){
/* clear retval */
memset(&header, 0, sizeof(ArrayHeader));
return true;
}
- /* set array header */
+ /**
+ * FlexibleSingleGram::set_array_header:
+ * @header: the array header of this single gram.
+ * @returns: whether the set operation is successful.
+ *
+ * Set the array header of this single gram.
+ *
+ */
bool set_array_header(/* in */ const ArrayHeader & header){
char * buf_begin = (char *)m_chunk.begin();
memcpy(buf_begin, &header, sizeof(ArrayHeader));
}
};
+/**
+ * FlexibleBigram:
+ * @MagicHeader: the type of the magic header.
+ * @ArrayHeader: the type of the array header.
+ * @ArrayItem: the type of the array item.
+ *
+ * The flexible bi-gram is mainly used for training purpose.
+ *
+ */
template<typename MagicHeader, typename ArrayHeader,
typename ArrayItem>
class FlexibleBigram{
}
public:
+ /**
+ * FlexibleBigram::FlexibleBigram:
+ * @magic_number: the 4 bytes magic number of the bi-gram.
+ *
+ * The constructor of the FlexibleBigram.
+ *
+ */
FlexibleBigram(const char * magic_number){
m_db = NULL;
m_magic_header_index[0] = null_token;
memcpy(m_magic_number, magic_number, sizeof(m_magic_number));
}
+ /**
+ * FlexibleBigram::~FlexibleBigram:
+ *
+ * The destructor of the FlexibleBigram.
+ *
+ */
~FlexibleBigram(){
reset();
}
- /* attach berkeley db on filesystem for training purpose. */
+ /**
+ * FlexibleBigram::attach:
+ * @dbfile: the path name of the flexible bi-gram.
+ * @flags: the attach flags for the Berkeley DB.
+ * @returns: whether the attach operation is successful.
+ *
+ * Attach Berkeley DB on filesystem for training purpose.
+ *
+ */
bool attach(const char * dbfile, guint32 flags){
reset();
u_int32_t db_flags = 0;
return false;
}
- /* load/store one array. */
+ /**
+ * FlexibleBigram::load:
+ * @index: the previous token in the flexible bi-gram.
+ * @single_gram: the single gram of the previous token.
+ * @returns: whether the load operation is successful.
+ *
+ * Load the single gram of the previous token.
+ *
+ */
bool load(phrase_token_t index,
FlexibleSingleGram<ArrayHeader, ArrayItem> * & single_gram){
if ( !m_db )
return true;
}
+ /**
+ * FlexibleBigram::store:
+ * @index: the previous token in the flexible bi-gram.
+ * @single_gram: the single gram of the previous token.
+ * @returns: whether the store operation is successful.
+ *
+ * Store the single gram of the previous token.
+ *
+ */
bool store(phrase_token_t index,
FlexibleSingleGram<ArrayHeader, ArrayItem> * single_gram){
if ( !m_db )
return ret == 0;
}
+ /**
+ * FlexibleBigram::remove:
+ * @index: the previous token in the flexible bi-gram.
+ * @returns: whether the remove operation is successful.
+ *
+ * Remove the single gram of the previous token.
+ *
+ */
bool remove(phrase_token_t index){
if ( !m_db )
return false;
return ret == 0;
}
- /* array of phrase_token_t items, for parameter estimation. */
+ /**
+ * FlexibleBigram::get_all_items:
+ * @items: the GArray to store all previous tokens.
+ * @returns: whether the get operation is successful.
+ *
+ * Get the array of all previous tokens for parameter estimation.
+ *
+ */
bool get_all_items(GArray * items){
g_array_set_size(items, 0);
if ( !m_db )
return true;
}
- /* get/set magic header. */
+ /**
+ * FlexibleBigram::get_magic_header:
+ * @header: the magic header.
+ * @returns: whether the get operation is successful.
+ *
+ * Get the magic header of the flexible bi-gram.
+ *
+ */
bool get_magic_header(MagicHeader & header){
/* clear retval */
memset(&header, 0, sizeof(MagicHeader));
return true;
}
+ /**
+ * FlexibleBigram::set_magic_header:
+ * @header: the magic header.
+ * @returns: whether the set operation is successful.
+ *
+ * Set the magic header of the flexible bi-gram.
+ *
+ */
bool set_magic_header(const MagicHeader & header){
if ( !m_db )
return false;
return ret == 0;
}
+ /**
+ * FlexibleBigram::get_array_header:
+ * @index: the previous token in the flexible bi-gram.
+ * @header: the array header in the single gram of the previous token.
+ * @returns: whether the get operation is successful.
+ *
+ * Get the array header in the single gram of the previous token.
+ *
+ */
bool get_array_header(phrase_token_t index, ArrayHeader & header){
/* clear retval */
memset(&header, 0, sizeof(ArrayHeader));
return true;
}
+ /**
+ * FlexibleBigram::set_array_header:
+ * @index: the previous token of the flexible bi-gram.
+ * @header: the array header in the single gram of the previous token.
+ * @returns: whether the set operation is successful.
+ *
+ * Set the array header in the single gram of the previous token.
+ *
+ */
bool set_array_header(phrase_token_t index, const ArrayHeader & header){
if ( !m_db )
return false;