Prevents loading data models repeatedly.
This commit is contained in:
parent
fe67daceee
commit
8ba4b9dfdf
|
@ -39,6 +39,11 @@ McBopomofoLM::~McBopomofoLM()
|
||||||
m_phraseReplacement.close();
|
m_phraseReplacement.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool McBopomofoLM::isDataModelLoaded()
|
||||||
|
{
|
||||||
|
return m_languageModel.isLoaded();
|
||||||
|
}
|
||||||
|
|
||||||
void McBopomofoLM::loadLanguageModel(const char* languageModelDataPath)
|
void McBopomofoLM::loadLanguageModel(const char* languageModelDataPath)
|
||||||
{
|
{
|
||||||
if (languageModelDataPath) {
|
if (languageModelDataPath) {
|
||||||
|
|
|
@ -64,6 +64,8 @@ public:
|
||||||
/// Asks to load the primary language model a the given path.
|
/// Asks to load the primary language model a the given path.
|
||||||
/// @param languageModelPath Thw path of the language model.
|
/// @param languageModelPath Thw path of the language model.
|
||||||
void loadLanguageModel(const char* languageModelPath);
|
void loadLanguageModel(const char* languageModelPath);
|
||||||
|
/// If the data model is already loaded.
|
||||||
|
bool isDataModelLoaded();
|
||||||
/// Asks to load the user phrases and excluded phrases at the given path.
|
/// Asks to load the user phrases and excluded phrases at the given path.
|
||||||
/// @param userPhrasesPath The path of user phrases.
|
/// @param userPhrasesPath The path of user phrases.
|
||||||
/// @param excludedPhrasesPath The path of excluded phrases.
|
/// @param excludedPhrasesPath The path of excluded phrases.
|
||||||
|
|
|
@ -32,6 +32,14 @@
|
||||||
|
|
||||||
McBopomofo::ParselessLM::~ParselessLM() { close(); }
|
McBopomofo::ParselessLM::~ParselessLM() { close(); }
|
||||||
|
|
||||||
|
bool McBopomofo::ParselessLM::isLoaded()
|
||||||
|
{
|
||||||
|
if (data_) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
bool McBopomofo::ParselessLM::open(const std::string_view& path)
|
bool McBopomofo::ParselessLM::open(const std::string_view& path)
|
||||||
{
|
{
|
||||||
if (data_) {
|
if (data_) {
|
||||||
|
|
|
@ -37,6 +37,7 @@ class ParselessLM : public Formosa::Gramambular::LanguageModel {
|
||||||
public:
|
public:
|
||||||
~ParselessLM() override;
|
~ParselessLM() override;
|
||||||
|
|
||||||
|
bool isLoaded();
|
||||||
bool open(const std::string_view& path);
|
bool open(const std::string_view& path);
|
||||||
void close();
|
void close();
|
||||||
|
|
||||||
|
|
|
@ -55,18 +55,26 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, McBopomo
|
||||||
|
|
||||||
+ (void)loadDataModels
|
+ (void)loadDataModels
|
||||||
{
|
{
|
||||||
|
if (!gLanguageModelMcBopomofo.isDataModelLoaded()) {
|
||||||
LTLoadLanguageModelFile(@"data", gLanguageModelMcBopomofo);
|
LTLoadLanguageModelFile(@"data", gLanguageModelMcBopomofo);
|
||||||
|
}
|
||||||
|
if (!gLanguageModelPlainBopomofo.isDataModelLoaded()) {
|
||||||
LTLoadLanguageModelFile(@"data-plain-bpmf", gLanguageModelPlainBopomofo);
|
LTLoadLanguageModelFile(@"data-plain-bpmf", gLanguageModelPlainBopomofo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+ (void)loadDataModel:(InputMode)mode
|
+ (void)loadDataModel:(InputMode)mode
|
||||||
{
|
{
|
||||||
if ([mode isEqualToString:InputModeBopomofo]) {
|
if ([mode isEqualToString:InputModeBopomofo]) {
|
||||||
|
if (!gLanguageModelMcBopomofo.isDataModelLoaded()) {
|
||||||
LTLoadLanguageModelFile(@"data", gLanguageModelMcBopomofo);
|
LTLoadLanguageModelFile(@"data", gLanguageModelMcBopomofo);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if ([mode isEqualToString:InputModePlainBopomofo]) {
|
if ([mode isEqualToString:InputModePlainBopomofo]) {
|
||||||
|
if (!gLanguageModelPlainBopomofo.isDataModelLoaded()) {
|
||||||
LTLoadLanguageModelFile(@"data-plain-bpmf", gLanguageModelPlainBopomofo);
|
LTLoadLanguageModelFile(@"data-plain-bpmf", gLanguageModelPlainBopomofo);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+ (void)loadUserPhrases
|
+ (void)loadUserPhrases
|
||||||
|
|
Loading…
Reference in New Issue