diff options
author | Yuri Gorshenin <y@maps.me> | 2016-09-12 17:03:20 +0300 |
---|---|---|
committer | Yuri Gorshenin <y@maps.me> | 2016-09-12 17:09:24 +0300 |
commit | 96682f747663b5c3d1d8166c0f5ef340d8e8211f (patch) | |
tree | e4d4921ddf844f0140b5c2382a46c691d36779c1 /search/emitter.hpp | |
parent | 16a2be0f43ec3b330ea33f119a7a7b8e2c50e37b (diff) |
[search] Fixed (and accelerated) coords search.
Diffstat (limited to 'search/emitter.hpp')
-rw-r--r-- | search/emitter.hpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/search/emitter.hpp b/search/emitter.hpp new file mode 100644 index 0000000000..8989a5ef09 --- /dev/null +++ b/search/emitter.hpp @@ -0,0 +1,38 @@ +#pragma once + +#include "search/result.hpp" +#include "search/search_params.hpp" + +namespace search +{ +class Emitter +{ +public: + inline void Init(SearchParams::TOnResults onResults) + { + m_onResults = onResults; + m_results.Clear(); + } + + inline bool AddResult(Result && res) { return m_results.AddResult(move(res)); } + inline void AddResultNoChecks(Result && res) { m_results.AddResultNoChecks(move(res)); } + + inline void Emit() + { + if (m_onResults) + m_onResults(m_results); + } + + inline Results const & GetResults() const { return m_results; } + + inline void Finish(bool cancelled) + { + if (m_onResults) + m_onResults(Results::GetEndMarker(cancelled)); + } + +private: + SearchParams::TOnResults m_onResults; + Results m_results; +}; +} // namespace search |