#pragma once #include "generator/emitter_interface.hpp" #include "generator/feature_builder.hpp" #include "generator/feature_generator.hpp" #include "indexer/feature_data.hpp" #include "base/geo_object_id.hpp" #include "base/logging.hpp" #include namespace generator { using namespace std; template class EmitterBooking : public EmitterInterface { public: EmitterBooking(Dataset const & dataset, map & features) : m_dataset(dataset), m_features(features) { } // EmitterInterface overrides: void Process(FeatureBuilder1 & fb) override { if (m_dataset.NecessaryMatchingConditionHolds(fb)) m_features.emplace(fb.GetMostGenericOsmId(), fb); } void GetNames(vector & names) const override { names.clear(); } bool Finish() override { LOG_SHORT(LINFO, ("Num of booking elements:", m_features.size())); return true; } private: Dataset const & m_dataset; map & m_features; }; } // namespace generator