sim_runner Last update: 16.07.2025 1 3 4 #pragma once 5 6 #include "core/lifecycle/i_simulation_instance/i_simulation_instance.h" 7 #include "core/service/sim_runner/i_sim_runner.h" 8 #include <memory> 9 14 namespace simulation_framework 15 { 16 namespace core 17 { 18 19 class SimRunnerImpl; 20 26 class SimRunner final : public ISimRunner 27 { 28 public: 30 ~SimRunner(); 31 34 explicit SimRunner(std::unique_ptr<lifecycle::ISimulationInstance> sim_instance); 35 39 StateFeedback Run() override; 40 44 StateFeedback Pause() override; 45 49 StateFeedback Resume() override; 50 54 StateFeedback StepN(int n) override; 55 59 StateFeedback Stop() override; 60 63 StateFeedback Terminate() override; 64 67 SimState GetSimulationState() const; 68 72 uint64_t GetExecutedStepCount() const; 73 75 void RunOverSimulation() override; 76 77 private: 79 std::unique_ptr<SimRunnerImpl> impl_; 80 }; 81 82 } // namespace core 83 } // namespace simulation_framework