示例#1
0
        private void Load()
        {
            if (_isLoaded)
            {
                return;
            }

            _smtModel  = _smtModelFactory.Create(this);
            _smtEngine = _smtModel.CreateInteractiveEngine();

            _ruleEngine = _ruleEngineFactory.Create(this);

            _hybridEngine = new HybridTranslationEngine(_smtEngine, _ruleEngine);
            _isLoaded     = true;
        }
示例#2
0
        private void Unload()
        {
            if (!_isLoaded)
            {
                return;
            }

            Save();

            _hybridEngine.Dispose();
            _hybridEngine = null;

            if (_ruleEngine != null)
            {
                _ruleEngine.Dispose();
                _ruleEngine = null;
            }

            _smtEngine.Dispose();
            _smtEngine = null;
            _smtModel.Dispose();
            _smtModel = null;
            _isLoaded = false;
        }