Engine ------------------------------------------------------------------------------------------
| 79 | |
| 80 | // Engine ------------------------------------------------------------------------------------------ |
| 81 | Engine::Engine(DataSource & dataSource, CategoriesHolder const & categories, |
| 82 | storage::CountryInfoGetter const & infoGetter, Params const & params) |
| 83 | : m_shutdown(false) |
| 84 | { |
| 85 | InitSuggestions doInit; |
| 86 | categories.ForEachName(doInit); |
| 87 | doInit.GetSuggests(m_suggests); |
| 88 | |
| 89 | m_contexts.resize(params.m_numThreads); |
| 90 | for (size_t i = 0; i < params.m_numThreads; ++i) |
| 91 | { |
| 92 | auto processor = make_unique<Processor>(dataSource, categories, m_suggests, infoGetter); |
| 93 | processor->SetPreferredLocale(params.m_locale); |
| 94 | m_contexts[i].m_processor = std::move(processor); |
| 95 | } |
| 96 | |
| 97 | m_threads.reserve(params.m_numThreads); |
| 98 | for (size_t i = 0; i < params.m_numThreads; ++i) |
| 99 | m_threads.emplace_back(&Engine::MainLoop, this, ref(m_contexts[i])); |
| 100 | |
| 101 | CacheWorldLocalities(); |
| 102 | LoadCitiesBoundaries(); |
| 103 | LoadCountriesTree(); |
| 104 | } |
| 105 | |
| 106 | Engine::~Engine() |
| 107 | { |
nothing calls this directly
no test coverage detected