#ifndef MDD_PROCESSORSTANDARD_H #define MDD_PROCESSORSTANDARD_H #include "ProcessorBase.h" #include "Output.h" #include namespace mdd { enum priority { MANUAL, STATIC, DYNAMIC, TIME }; class ProcessorStandard : public ProcessorBase { private: struct module_priority{ std::shared_ptr module_ptr; size_t connectionCounter; size_t changeCounter; std::chrono::milliseconds runtime; }; std::vector _priority_list; priority _prioritization; public: int maxIterations; priority priorityEvaluation; ProcessorStandard(priority priorityEvaluation = MANUAL, int maxIterations = -1); std::string addModule(std::shared_ptr module) override; void removeModule(std::shared_ptr module) override; std::vector> getModulePriority(); state update() override; std::shared_ptr getIteration(); }; } #endif //MDD_PROCESSORMANUAL_H