#pragma once #include "generator/affiliation.hpp" #include "generator/feature_builder.hpp" #include "generator/feature_processing_layers.hpp" #include "generator/processor_interface.hpp" #include #include namespace feature { struct GenerateInfo; } // namespace feature namespace generator { // This class is implementation of FeatureProcessorInterface for the world. class ProcessorWorld : public FeatureProcessorInterface { public: explicit ProcessorWorld(std::shared_ptr const & queue, std::string const & popularityFilename); // FeatureProcessorInterface overrides: std::shared_ptr Clone() const override; void Process(feature::FeatureBuilder & feature) override; void Finish() override; private: std::string m_popularityFilename; std::shared_ptr> m_affiliationsLayer; std::shared_ptr m_queue; std::shared_ptr m_processingChain; }; } // namespace generator