From c9ef1fa3663816af59c09311d0004a0bb546c236 Mon Sep 17 00:00:00 2001 From: Yuri Gorshenin Date: Tue, 27 Sep 2016 19:20:43 +0300 Subject: Review fixes. --- search/locality_finder.cpp | 39 ++++++++++++++-------------- search/search_tests/locality_finder_test.cpp | 6 ++--- 2 files changed, 23 insertions(+), 22 deletions(-) (limited to 'search') diff --git a/search/locality_finder.cpp b/search/locality_finder.cpp index 5774b267a4..7621b5f462 100644 --- a/search/locality_finder.cpp +++ b/search/locality_finder.cpp @@ -50,20 +50,23 @@ private: CBV m_cbv; }; -class DoLoader +class LocalitiesLoader { public: - DoLoader(MwmContext const & ctx, Filter const & filter, int8_t lang, - m4::Tree & localities, - map> & loadedIds) - : m_ctx(ctx), m_filter(filter), m_lang(lang), m_localities(localities), m_loadedIds(loadedIds) + LocalitiesLoader(MwmContext const & ctx, Filter const & filter, int8_t lang, + m4::Tree & localities, + map> & loadedIds) + : m_ctx(ctx) + , m_filter(filter) + , m_lang(lang) + , m_localities(localities) + , m_loadedIds(loadedIds[m_ctx.GetId()]) { } void operator()(uint32_t id) const { - auto const & mwmId = m_ctx.GetId(); - if (m_loadedIds[mwmId].count(id) != 0) + if (m_loadedIds.count(id) != 0) return; if (!m_filter.IsGood(id)) @@ -83,7 +86,7 @@ public: case TOWN: case VILLAGE: break; - default: // cache only cities and towns at this moment + default: return; } @@ -91,18 +94,16 @@ public: if (population == 0) return; - auto const center = ft.GetCenter(); - double const radius = ftypes::GetRadiusByPopulation(population); - m2::RectD const rect = MercatorBounds::RectByCenterXYAndSizeInMeters(center, radius); - // read item string name; if (!ft.GetName(m_lang, name) && !ft.GetName(0, name)) return; + auto const center = ft.GetCenter(); + LocalityFinder::Item item(name, center, population); - m_localities.Add(item, rect); - m_loadedIds[mwmId].insert(id); + m_localities.Add(item, m2::RectD(center, center)); + m_loadedIds.insert(id); } private: @@ -111,7 +112,7 @@ private: int8_t const m_lang; m4::Tree & m_localities; - map> & m_loadedIds; + unordered_set & m_loadedIds; }; } // namespace @@ -184,16 +185,16 @@ void LocalityFinder::LoadVicinity(m2::PointD const & pt) m_ranks = make_unique(); MwmContext ctx(move(handle)); - ctx.ForEachIndex(drect, - DoLoader(ctx, CityFilter(*m_ranks), m_lang, m_localities, m_loadedIds)); + ctx.ForEachIndex( + drect, LocalitiesLoader(ctx, CityFilter(*m_ranks), m_lang, m_localities, m_loadedIds)); break; } case feature::DataHeader::country: if (header.GetBounds().IsPointInside(pt)) { MwmContext ctx(move(handle)); - ctx.ForEachIndex(drect, DoLoader(ctx, VillageFilter(ctx, m_villagesCache), m_lang, - m_localities, m_loadedIds)); + ctx.ForEachIndex(drect, LocalitiesLoader(ctx, VillageFilter(ctx, m_villagesCache), m_lang, + m_localities, m_loadedIds)); } break; case feature::DataHeader::worldcoasts: break; diff --git a/search/search_tests/locality_finder_test.cpp b/search/search_tests/locality_finder_test.cpp index 50ca728dda..eb5847b6b5 100644 --- a/search/search_tests/locality_finder_test.cpp +++ b/search/search_tests/locality_finder_test.cpp @@ -16,12 +16,12 @@ namespace { -struct TestWithClassifier +struct TestWithClassificator { - TestWithClassifier() { classificator::Load(); } + TestWithClassificator() { classificator::Load(); } }; -class LocalityFinderTest : public TestWithClassifier +class LocalityFinderTest : public TestWithClassificator { platform::LocalCountryFile m_worldFile; -- cgit v1.2.3