Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Gorshenin <y@maps.me>2016-09-12 17:03:20 +0300
committerYuri Gorshenin <y@maps.me>2016-09-12 17:09:24 +0300
commit96682f747663b5c3d1d8166c0f5ef340d8e8211f (patch)
treee4d4921ddf844f0140b5c2382a46c691d36779c1 /search/emitter.hpp
parent16a2be0f43ec3b330ea33f119a7a7b8e2c50e37b (diff)
[search] Fixed (and accelerated) coords search.
Diffstat (limited to 'search/emitter.hpp')
-rw-r--r--search/emitter.hpp38
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