#pragma once #include "UI.hpp" #include "timer.hpp" class Simulator_base { public: Simulator_base(std::string name, std::chrono::milliseconds interval = std::chrono::milliseconds(100)); std::string name() const; bool is_ui_id_unique(std::string id) const; void add_UI_item(UI_item* item); json get_UI_items() const; UI_item* get_UI_item(std::string id) const; void run(); void stop(); virtual void timer() {}; protected: std::string p_name; std::vector p_UI_items; std::map p_UI_items_map; Timer p_timer; std::chrono::milliseconds m_interval; };