#pragma once #include "generator/feature_processing_layers.hpp" #include "generator/processor_interface.hpp" #include <memory> #include <string> namespace generator { // This class is the implementation of FeatureProcessorInterface for countries. class ProcessorCountry : public FeatureProcessorInterface { public: ProcessorCountry(AffiliationInterfacePtr affiliations, std::shared_ptr<FeatureProcessorQueue> queue); // FeatureProcessorInterface overrides: std::shared_ptr<FeatureProcessorInterface> Clone() const override; void Process(feature::FeatureBuilder & feature) override; void Finish() override; private: AffiliationInterfacePtr m_affiliations; std::shared_ptr<FeatureProcessorQueue> m_queue; std::shared_ptr<AffiliationsFeatureLayer> m_affiliationsLayer; std::shared_ptr<LayerBase> m_processingChain; //std::shared_ptr<ComplexFeaturesMixer> m_complexFeaturesMixer; }; } // namespace generator