コード例 #1
0
 public TestEnvironment()
 {
     EngineRepository  = new MemoryEngineRepository();
     BuildRepository   = new MemoryBuildRepository();
     ProjectRepository = new MemoryRepository <Project>();
     _engineOptions    = new OptionsWrapper <EngineOptions>(new EngineOptions
     {
         EngineCommitFrequency = TimeSpan.FromMinutes(5),
         InactiveEngineTimeout = TimeSpan.FromMinutes(10)
     });
     _smtModelFactory   = CreateSmtModelFactory();
     _ruleEngineFactory = CreateRuleEngineFactory();
     _textCorpusFactory = CreateTextCorpusFactory();
 }
コード例 #2
0
        public Engine(ISmtModelFactory smtModelFactory, ITranslationEngineFactory ruleEngineFactory, TimeSpan inactiveTimeout, string configDir,
                      string sourceLanguageTag, string targetLanguageTag)
        {
            _smtModelFactory   = smtModelFactory;
            _ruleEngineFactory = ruleEngineFactory;
            _inactiveTimeout   = inactiveTimeout;
            ConfigDirectory    = configDir;
            SourceLanguageTag  = sourceLanguageTag;
            TargetLanguageTag  = targetLanguageTag;
            _lastUsedTime      = DateTime.Now;
            Projects           = new HashSet <Project>();

            if (!Directory.Exists(ConfigDirectory))
            {
                Directory.CreateDirectory(ConfigDirectory);
                _smtModelFactory.InitNewModel(this);
            }
        }
コード例 #3
0
        public void CreateEngineService()
        {
            SmtModel     = Substitute.For <IInteractiveSmtModel>();
            BatchTrainer = Substitute.For <ISmtBatchTrainer>();
            BatchTrainer.Stats.Returns(new SmtBatchTrainStats());
            _smtModelFactory   = CreateSmtModelFactory();
            _ruleEngineFactory = CreateRuleEngineFactory();
            _textCorpusFactory = CreateTextCorpusFactory();

            Service = new EngineService(new OptionsWrapper <EngineOptions>(EngineOptions), EngineRepository,
                                        BuildRepository, ProjectRepository, CreateEngineRuntime);
            Service.Init();
            var jobServerOptions = new BackgroundJobServerOptions
            {
                Activator = new EnvActivator(this)
            };

            _jobServer = new BackgroundJobServer(jobServerOptions, _memoryStorage);
        }
コード例 #4
0
 public EngineService(IOptions <EngineOptions> options, ISmtModelFactory smtModelFactory, ITranslationEngineFactory ruleEngineFactory)
 {
     _options           = options.Value;
     _smtModelFactory   = smtModelFactory;
     _ruleEngineFactory = ruleEngineFactory;
     _languagePairs     = new ConcurrentDictionary <Tuple <string, string>, LanguagePair>();
     foreach (string configDir in Directory.EnumerateDirectories(_options.RootDir))
     {
         string configFileName = Path.Combine(configDir, "config.json");
         if (!File.Exists(configFileName))
         {
             continue;
         }
         LanguagePairDto languagePairConfig = JsonConvert.DeserializeObject <LanguagePairDto>(File.ReadAllText(configFileName));
         var             languagePair       = new LanguagePair(languagePairConfig.SourceLanguageTag, languagePairConfig.TargetLanguageTag, configDir);
         foreach (ProjectDto projectConfig in languagePairConfig.Projects)
         {
             CreateProject(languagePair, projectConfig.Id, projectConfig.IsShared);
         }
         _languagePairs[Tuple.Create(languagePair.SourceLanguageTag, languagePair.TargetLanguageTag)] = languagePair;
     }
     _commitTimer = new Timer(EngineCommitCallback, null, _options.EngineCommitFrequency, _options.EngineCommitFrequency);
 }