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