summaryrefslogtreecommitdiffstats
path: root/src/storage/facade_chewing_table.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/storage/facade_chewing_table.h')
-rw-r--r--src/storage/facade_chewing_table.h216
1 files changed, 0 insertions, 216 deletions
diff --git a/src/storage/facade_chewing_table.h b/src/storage/facade_chewing_table.h
deleted file mode 100644
index 9e0bef6..0000000
--- a/src/storage/facade_chewing_table.h
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * libzhuyin
- * Library to deal with zhuyin.
- *
- * Copyright (C) 2011 Peng Wu <alexepico@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef FACADE_CHEWING_TABLE_H
-#define FACADE_CHEWING_TABLE_H
-
-#include "novel_types.h"
-#include "chewing_large_table.h"
-
-namespace zhuyin{
-
-/**
- * FacadeChewingTable:
- *
- * The facade class of chewing large table.
- *
- */
-
-class FacadeChewingTable{
-private:
- ChewingLargeTable * m_system_chewing_table;
- ChewingLargeTable * m_user_chewing_table;
-
- void reset() {
- if (m_system_chewing_table) {
- delete m_system_chewing_table;
- m_system_chewing_table = NULL;
- }
-
- if (m_user_chewing_table) {
- delete m_user_chewing_table;
- m_user_chewing_table = NULL;
- }
- }
-public:
- /**
- * FacadeChewingTable::FacadeChewingTable:
- *
- * The constructor of the FacadeChewingTable.
- *
- */
- FacadeChewingTable() {
- m_system_chewing_table = NULL;
- m_user_chewing_table = NULL;
- }
-
- /**
- * FacadeChewingTable::~FacadeChewingTable:
- *
- * The destructor of the FacadeChewingTable.
- *
- */
- ~FacadeChewingTable() {
- reset();
- }
-
- /**
- * FacadeChewingTable::set_options:
- * @options: the pinyin options.
- * @returns: whether the setting options is successful.
- *
- * Set the options of the system and user chewing table.
- *
- */
- bool set_options(pinyin_option_t options) {
- bool result = false;
- if (m_system_chewing_table)
- result = m_system_chewing_table->set_options(options) || result;
- if (m_user_chewing_table)
- result = m_user_chewing_table->set_options(options) || result;
- return result;
- }
-
- /**
- * FacadeChewingTable::load:
- * @options: the pinyin options.
- * @system: the memory chunk of the system chewing table.
- * @user: the memory chunk of the user chewing table.
- * @returns: whether the load operation is successful.
- *
- * Load the system or user chewing table from the memory chunks.
- *
- */
- bool load(pinyin_option_t options, MemoryChunk * system,
- MemoryChunk * user){
- reset();
-
- bool result = false;
- if (system) {
- m_system_chewing_table = new ChewingLargeTable(options);
- result = m_system_chewing_table->load(system) || result;
- }
- if (user) {
- m_user_chewing_table = new ChewingLargeTable(options);
- result = m_user_chewing_table->load(user) || result;
- }
- return result;
- }
-
- /**
- * FacadeChewingTable::store:
- * @new_user: the memory chunk to store the user chewing table.
- * @returns: whether the store operation is successful.
- *
- * Store the user chewing table to the memory chunk.
- *
- */
- bool store(MemoryChunk * new_user) {
- if (NULL == m_user_chewing_table)
- return false;
- return m_user_chewing_table->store(new_user);
- }
-
- /**
- * FacadeChewingTable::search:
- * @phrase_length: the length of the phrase to be searched.
- * @keys: the pinyin key of the phrase to be searched.
- * @ranges: the array of GArrays to store the matched phrase token.
- * @returns: the search result of enum SearchResult.
- *
- * Search the phrase tokens according to the pinyin keys.
- *
- */
- int search(int phrase_length, /* in */ const ChewingKey keys[],
- /* out */ PhraseIndexRanges ranges) const {
-
- /* clear ranges. */
- for (size_t i = 0; i < PHRASE_INDEX_LIBRARY_COUNT; ++i) {
- if (ranges[i])
- g_array_set_size(ranges[i], 0);
- }
-
- int result = SEARCH_NONE;
-
- if (NULL != m_system_chewing_table)
- result |= m_system_chewing_table->search
- (phrase_length, keys, ranges);
-
- if (NULL != m_user_chewing_table)
- result |= m_user_chewing_table->search
- (phrase_length, keys, ranges);
-
- return result;
- }
-
- /**
- * FacadeChewingTable::add_index:
- * @phrase_length: the length of the phrase to be added.
- * @keys: the pinyin keys of the phrase to be added.
- * @token: the token of the phrase to be added.
- * @returns: the add result of enum ErrorResult.
- *
- * Add the phrase token to the user chewing table.
- *
- */
- int add_index(int phrase_length, /* in */ const ChewingKey keys[],
- /* in */ phrase_token_t token) {
- if (NULL == m_user_chewing_table)
- return ERROR_NO_USER_TABLE;
- return m_user_chewing_table->add_index(phrase_length, keys, token);
- }
-
- /**
- * FacadeChewingTable::remove_index:
- * @phrase_length: the length of the phrase to be removed.
- * @keys: the pinyin keys of the phrase to be removed.
- * @token: the token of the phrase to be removed.
- * @returns: the remove result of enum ErrorResult.
- *
- * Remove the phrase token from the user chewing table.
- *
- */
- int remove_index(int phrase_length, /* in */ const ChewingKey keys[],
- /* in */ phrase_token_t token) {
- if (NULL == m_user_chewing_table)
- return ERROR_NO_USER_TABLE;
- return m_user_chewing_table->remove_index(phrase_length, keys, token);
- }
-
- /**
- * FacadeChewingTable::mask_out:
- * @mask: the mask.
- * @value: the value.
- * @returns: whether the mask out operation is successful.
- *
- * Mask out the matched chewing index.
- *
- */
- bool mask_out(phrase_token_t mask, phrase_token_t value) {
- if (NULL == m_user_chewing_table)
- return false;
- return m_user_chewing_table->mask_out(mask, value);
- }
-};
-
-};
-
-#endif