mgrLM // Dealing with Namespace Pollusion.
This commit is contained in:
parent
4d2756105c
commit
0d18248665
|
@ -22,16 +22,13 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH
|
||||||
#import "vChewing-Swift.h"
|
#import "vChewing-Swift.h"
|
||||||
#import "LMConsolidator.h"
|
#import "LMConsolidator.h"
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
using namespace vChewing;
|
|
||||||
|
|
||||||
static const int kUserOverrideModelCapacity = 500;
|
static const int kUserOverrideModelCapacity = 500;
|
||||||
static const double kObservedOverrideHalflife = 5400.0;
|
static const double kObservedOverrideHalflife = 5400.0;
|
||||||
|
|
||||||
static LMInstantiator gLangModelCHT;
|
static vChewing::LMInstantiator gLangModelCHT;
|
||||||
static LMInstantiator gLangModelCHS;
|
static vChewing::LMInstantiator gLangModelCHS;
|
||||||
static UserOverrideModel gUserOverrideModelCHT(kUserOverrideModelCapacity, kObservedOverrideHalflife);
|
static vChewing::UserOverrideModel gUserOverrideModelCHT(kUserOverrideModelCapacity, kObservedOverrideHalflife);
|
||||||
static UserOverrideModel gUserOverrideModelCHS(kUserOverrideModelCapacity, kObservedOverrideHalflife);
|
static vChewing::UserOverrideModel gUserOverrideModelCHS(kUserOverrideModelCapacity, kObservedOverrideHalflife);
|
||||||
|
|
||||||
static NSString *const kUserDataTemplateName = @"template-data";
|
static NSString *const kUserDataTemplateName = @"template-data";
|
||||||
static NSString *const kUserAssDataTemplateName = @"template-data";
|
static NSString *const kUserAssDataTemplateName = @"template-data";
|
||||||
|
@ -41,7 +38,7 @@ static NSString *const kTemplateExtension = @".txt";
|
||||||
|
|
||||||
@implementation mgrLangModel
|
@implementation mgrLangModel
|
||||||
|
|
||||||
static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, LMInstantiator &lm)
|
static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, vChewing::LMInstantiator &lm)
|
||||||
{
|
{
|
||||||
Class cls = NSClassFromString(@"ctlInputMethod");
|
Class cls = NSClassFromString(@"ctlInputMethod");
|
||||||
NSString *dataPath = [[NSBundle bundleForClass:cls] pathForResource:filenameWithoutExtension ofType:@"txt"];
|
NSString *dataPath = [[NSBundle bundleForClass:cls] pathForResource:filenameWithoutExtension ofType:@"txt"];
|
||||||
|
@ -210,7 +207,7 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, LMInstan
|
||||||
+ (BOOL)checkIfUserPhraseExist:(NSString *)userPhrase inputMode:(InputMode)mode key:(NSString *)key NS_SWIFT_NAME(checkIfUserPhraseExist(userPhrase:mode:key:))
|
+ (BOOL)checkIfUserPhraseExist:(NSString *)userPhrase inputMode:(InputMode)mode key:(NSString *)key NS_SWIFT_NAME(checkIfUserPhraseExist(userPhrase:mode:key:))
|
||||||
{
|
{
|
||||||
string unigramKey = string(key.UTF8String);
|
string unigramKey = string(key.UTF8String);
|
||||||
vector<Unigram> unigrams = [mode isEqualToString:imeModeCHT] ? gLangModelCHT.unigramsForKey(unigramKey): gLangModelCHS.unigramsForKey(unigramKey);
|
vector<vChewing::Unigram> unigrams = [mode isEqualToString:imeModeCHT] ? gLangModelCHT.unigramsForKey(unigramKey): gLangModelCHS.unigramsForKey(unigramKey);
|
||||||
string userPhraseString = string(userPhrase.UTF8String);
|
string userPhraseString = string(userPhrase.UTF8String);
|
||||||
for (auto unigram: unigrams) {
|
for (auto unigram: unigrams) {
|
||||||
if (unigram.keyValue.value == userPhraseString) {
|
if (unigram.keyValue.value == userPhraseString) {
|
||||||
|
@ -269,7 +266,7 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, LMInstan
|
||||||
[writeFile closeFile];
|
[writeFile closeFile];
|
||||||
|
|
||||||
// We enforce the format consolidation here, since the pragma header will let the UserPhraseLM bypasses the consolidating process on load.
|
// We enforce the format consolidation here, since the pragma header will let the UserPhraseLM bypasses the consolidating process on load.
|
||||||
LMConsolidator::ConsolidateContent([path UTF8String], Preferences.shouldAutoSortUserPhrasesAndExclListOnLoad, false);
|
vChewing::LMConsolidator::ConsolidateContent([path UTF8String], Preferences.shouldAutoSortUserPhrasesAndExclListOnLoad, false);
|
||||||
|
|
||||||
// We use FSEventStream to monitor the change of the user phrase folder,
|
// We use FSEventStream to monitor the change of the user phrase folder,
|
||||||
// so we don't have to load data here unless FSEventStream is disabled by user.
|
// so we don't have to load data here unless FSEventStream is disabled by user.
|
||||||
|
@ -317,12 +314,12 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, LMInstan
|
||||||
return [[NSBundle bundleForClass:cls] pathForResource:@"char-kanji-cns" ofType:@"txt"];
|
return [[NSBundle bundleForClass:cls] pathForResource:@"char-kanji-cns" ofType:@"txt"];
|
||||||
}
|
}
|
||||||
|
|
||||||
+ (LMInstantiator *)lmCHT
|
+ (vChewing::LMInstantiator *)lmCHT
|
||||||
{
|
{
|
||||||
return &gLangModelCHT;
|
return &gLangModelCHT;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ (LMInstantiator *)lmCHS
|
+ (vChewing::LMInstantiator *)lmCHS
|
||||||
{
|
{
|
||||||
return &gLangModelCHS;
|
return &gLangModelCHS;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue