diff options
author | Arsentiy Milchakov <milcars@mapswithme.com> | 2019-04-19 22:33:49 +0300 |
---|---|---|
committer | Tatiana Yan <tatiana.kondakova@gmail.com> | 2019-04-22 18:47:33 +0300 |
commit | ddc65679bc06c72e4946a476360541cd87db51e3 (patch) | |
tree | 977245abbd6b911087913528d1cc98d5f838d410 /search | |
parent | 01c771fe7f945a53581a7badb0a6b840e98f572a (diff) |
[booking][search] store viewport search params into SearchApi instead of forwarding search params into callbacks.
Diffstat (limited to 'search')
-rw-r--r-- | search/downloader_search_callback.cpp | 4 | ||||
-rw-r--r-- | search/downloader_search_callback.hpp | 5 | ||||
-rw-r--r-- | search/emitter.hpp | 10 | ||||
-rw-r--r-- | search/processor.cpp | 4 | ||||
-rw-r--r-- | search/search_integration_tests/downloader_search_test.cpp | 4 | ||||
-rw-r--r-- | search/search_params.cpp | 2 | ||||
-rw-r--r-- | search/search_params.hpp | 21 | ||||
-rw-r--r-- | search/search_quality/assessment_tool/search_request_runner.cpp | 3 | ||||
-rw-r--r-- | search/search_tests/bookmarks_processor_tests.cpp | 2 | ||||
-rw-r--r-- | search/search_tests_support/test_search_request.cpp | 6 | ||||
-rw-r--r-- | search/search_tests_support/test_search_request.hpp | 2 | ||||
-rw-r--r-- | search/utils.hpp | 4 |
12 files changed, 26 insertions, 41 deletions
diff --git a/search/downloader_search_callback.cpp b/search/downloader_search_callback.cpp index 80382569ba..b155049a8b 100644 --- a/search/downloader_search_callback.cpp +++ b/search/downloader_search_callback.cpp @@ -1,7 +1,6 @@ #include "search/downloader_search_callback.hpp" #include "search/result.hpp" -#include "search/search_params.hpp" #include "editor/editable_data_source.hpp" @@ -51,8 +50,7 @@ DownloaderSearchCallback::DownloaderSearchCallback(Delegate & delegate, { } -void DownloaderSearchCallback::operator()(Results const & results, - SearchParamsBase const & /* params */) +void DownloaderSearchCallback::operator()(search::Results const & results) { storage::DownloaderSearchResults downloaderSearchResults; std::set<storage::DownloaderSearchResult> uniqueResults; diff --git a/search/downloader_search_callback.hpp b/search/downloader_search_callback.hpp index 0db540d7a2..066957849b 100644 --- a/search/downloader_search_callback.hpp +++ b/search/downloader_search_callback.hpp @@ -1,7 +1,5 @@ #pragma once -#include "search/search_params.hpp" - #include "storage/downloader_search_params.hpp" #include <functional> @@ -17,7 +15,6 @@ class Storage; namespace search { class Results; -struct SearchParamsBase; // An on-results callback that should be used for the search in downloader. // @@ -38,7 +35,7 @@ public: storage::Storage const & storage, storage::DownloaderSearchParams params); - void operator()(Results const & results, SearchParamsBase const &); + void operator()(search::Results const & results); private: Delegate & m_delegate; diff --git a/search/emitter.hpp b/search/emitter.hpp index ddd07a6adc..9b7474be13 100644 --- a/search/emitter.hpp +++ b/search/emitter.hpp @@ -17,10 +17,9 @@ struct Result; class Emitter { public: - void Init(SearchParams const & params) + void Init(SearchParams::OnResults onResults) { - m_params = static_cast<SearchParamsBase>(params); - m_onResults = params.m_onResults; + m_onResults = onResults; m_results.Clear(); } @@ -32,7 +31,7 @@ public: void Emit() { if (m_onResults) - m_onResults(m_results, m_params); + m_onResults(m_results); else LOG(LERROR, ("OnResults is not set.")); } @@ -43,13 +42,12 @@ public: { m_results.SetEndMarker(cancelled); if (m_onResults) - m_onResults(m_results, m_params); + m_onResults(m_results); else LOG(LERROR, ("OnResults is not set.")); } private: - SearchParamsBase m_params; SearchParams::OnResults m_onResults; Results m_results; }; diff --git a/search/processor.cpp b/search/processor.cpp index 2aa89c8cff..913d8e1f45 100644 --- a/search/processor.cpp +++ b/search/processor.cpp @@ -384,7 +384,7 @@ void Processor::Search(SearchParams const & params) results.SetEndMarker(true /* isCancelled */); if (params.m_onResults) - params.m_onResults(results, params); + params.m_onResults(results); else LOG(LERROR, ("OnResults is not set.")); return; @@ -610,7 +610,7 @@ void Processor::InitRanker(Geocoder::Params const & geocoderParams, void Processor::InitEmitter(SearchParams const & searchParams) { - m_emitter.Init(searchParams); + m_emitter.Init(searchParams.m_onResults); } void Processor::ClearCaches() diff --git a/search/search_integration_tests/downloader_search_test.cpp b/search/search_integration_tests/downloader_search_test.cpp index 295bdd8aec..4cfe30f3eb 100644 --- a/search/search_integration_tests/downloader_search_test.cpp +++ b/search/search_integration_tests/downloader_search_test.cpp @@ -119,8 +119,8 @@ public: void OnResultsDownloader(search::Results const & results) { - m_downloaderCallback(results, {}); - OnResults(results, {}); + m_downloaderCallback(results); + OnResults(results); } vector<storage::DownloaderSearchResult> const & GetResults() const { return m_downloaderResults; } diff --git a/search/search_params.cpp b/search/search_params.cpp index 261d9fee66..3c97e78cf3 100644 --- a/search/search_params.cpp +++ b/search/search_params.cpp @@ -12,7 +12,7 @@ using namespace std; namespace search { -bool SearchParamsBase::IsEqualCommon(SearchParamsBase const & rhs) const +bool SearchParams::IsEqualCommon(SearchParams const & rhs) const { return m_query == rhs.m_query && m_inputLocale == rhs.m_inputLocale && static_cast<bool>(m_position) == static_cast<bool>(rhs.m_position) && m_mode == rhs.m_mode; diff --git a/search/search_params.hpp b/search/search_params.hpp index 12c4650004..dd151003e2 100644 --- a/search/search_params.hpp +++ b/search/search_params.hpp @@ -18,16 +18,22 @@ namespace search class Results; class Tracer; -struct SearchParamsBase +struct SearchParams { static size_t const kDefaultNumBookmarksResults = 1000; static size_t const kDefaultNumResultsEverywhere = 30; static size_t const kDefaultNumResultsInViewport = 200; - bool IsEqualCommon(SearchParamsBase const & rhs) const; + using OnStarted = std::function<void()>; + using OnResults = std::function<void(Results const &)>; + + bool IsEqualCommon(SearchParams const & rhs) const; void Clear() { m_query.clear(); } + OnStarted m_onStarted; + OnResults m_onResults; + std::string m_query; std::string m_inputLocale; @@ -50,18 +56,9 @@ struct SearchParamsBase // Needed to highlight matching parts of search result names. bool m_needHighlighting = false; -}; - -// Note: inheritance for aggregation data only, any of polymorphic usage is not supported. -struct SearchParams : SearchParamsBase -{ - using OnStarted = std::function<void()>; - using OnResults = std::function<void(Results const &, SearchParamsBase const &)>; - - OnStarted m_onStarted; - OnResults m_onResults; std::shared_ptr<hotels_filter::Rule> m_hotelsFilter; + std::shared_ptr<Tracer> m_tracer; }; diff --git a/search/search_quality/assessment_tool/search_request_runner.cpp b/search/search_quality/assessment_tool/search_request_runner.cpp index 7e804e1223..b031d8ce1d 100644 --- a/search/search_quality/assessment_tool/search_request_runner.cpp +++ b/search/search_quality/assessment_tool/search_request_runner.cpp @@ -89,8 +89,7 @@ void SearchRequestRunner::RunRequest(size_t index, bool background, size_t times search::SearchParams params; sample.FillSearchParams(params); - params.m_onResults = [=](search::Results const & results, - search::SearchParamsBase const & /* params */) { + params.m_onResults = [=](search::Results const & results) { vector<boost::optional<ResultsEdits::Relevance>> relevances; vector<size_t> goldenMatching; vector<size_t> actualMatching; diff --git a/search/search_tests/bookmarks_processor_tests.cpp b/search/search_tests/bookmarks_processor_tests.cpp index 5e71d9d38d..3d11f53514 100644 --- a/search/search_tests/bookmarks_processor_tests.cpp +++ b/search/search_tests/bookmarks_processor_tests.cpp @@ -31,7 +31,7 @@ public: Ids Search(string const & query) { - m_emitter.Init({}); + m_emitter.Init([](::search::Results const & /* results */) {} /* onResults */); vector<strings::UniString> tokens; auto const isPrefix = diff --git a/search/search_tests_support/test_search_request.cpp b/search/search_tests_support/test_search_request.cpp index 226cdbc4a2..75b2666b3c 100644 --- a/search/search_tests_support/test_search_request.cpp +++ b/search/search_tests_support/test_search_request.cpp @@ -84,8 +84,7 @@ void TestSearchRequest::Wait() void TestSearchRequest::SetUpCallbacks() { m_params.m_onStarted = bind(&TestSearchRequest::OnStarted, this); - m_params.m_onResults = - bind(&TestSearchRequest::OnResults, this, placeholders::_1, placeholders::_2); + m_params.m_onResults = bind(&TestSearchRequest::OnResults, this, placeholders::_1); } void TestSearchRequest::SetUpResultParams() @@ -114,8 +113,7 @@ void TestSearchRequest::OnStarted() m_startTime = m_timer.TimeElapsed(); } -void TestSearchRequest::OnResults(search::Results const & results, - search::SearchParamsBase const & /* params */) +void TestSearchRequest::OnResults(search::Results const & results) { lock_guard<mutex> lock(m_mu); m_results.assign(results.begin(), results.end()); diff --git a/search/search_tests_support/test_search_request.hpp b/search/search_tests_support/test_search_request.hpp index b6fafdb7a2..450f25418f 100644 --- a/search/search_tests_support/test_search_request.hpp +++ b/search/search_tests_support/test_search_request.hpp @@ -52,7 +52,7 @@ protected: void SetUpResultParams(); void OnStarted(); - void OnResults(search::Results const & results, SearchParamsBase const &); + void OnResults(search::Results const & results); // Overrides the default onResults callback. void SetCustomOnResults(SearchParams::OnResults const & onResults); diff --git a/search/utils.hpp b/search/utils.hpp index e468c47635..91fe0515ea 100644 --- a/search/utils.hpp +++ b/search/utils.hpp @@ -131,8 +131,6 @@ using FeatureIndexCallback = std::function<void(FeatureID const &)>; void ForEachOfTypesInRect(DataSource const & dataSource, std::vector<uint32_t> const & types, m2::RectD const & rect, FeatureIndexCallback const & fn); -// Returns true iff |query| contains |categoryName| synonym. -// |query| - search query in any language. -// |categoryName| - name of category in English. +// Returns true iff |query| contains |categoryEn| synonym. bool IsCategorialRequestFuzzy(std::string const & query, std::string const & categoryName); } // namespace search |