#pragma once #include "generator/feature_builder.hpp" #include "generator/feature_generator.hpp" #include "generator/processor_interface.hpp" #include "indexer/feature_data.hpp" #include "base/assert.hpp" #include "base/geo_object_id.hpp" #include #include namespace generator { using namespace std; template class ProcessorBooking : public FeatureProcessorInterface { public: ProcessorBooking(Dataset const & dataset, std::map & features) : m_dataset(dataset), m_features(features) { } // FeatureProcessorInterface overrides: virtual std::shared_ptr Clone() const override { CHECK(false, ()); return {}; } void Process(feature::FeatureBuilder & fb) override { if (m_dataset.NecessaryMatchingConditionHolds(fb)) m_features.emplace(fb.GetMostGenericOsmId(), fb); } void Finish() override {} private: Dataset const & m_dataset; std::map & m_features; }; } // namespace generator