i_sim_runner Last update: 16.07.2025 1 3 4 #pragma once 5 6 #include <string> 7 12 namespace simulation_framework 13 { 14 namespace core 15 { 16 18 struct StateFeedback 19 { 21 bool execute_status; 22 24 std::string error_msg; 25 }; 26 28 enum class SimState 29 { 30 kInitialized, 31 kRunning, 32 kPaused, 33 kFinished, 34 kTerminated, 35 kError 36 }; 37 41 class ISimRunner 42 { 43 public: 45 virtual ~ISimRunner() = default; 46 49 virtual StateFeedback Run() = 0; 50 53 virtual StateFeedback Pause() = 0; 54 57 virtual StateFeedback Resume() = 0; 58 62 virtual StateFeedback StepN(int n) = 0; 63 66 virtual StateFeedback Stop() = 0; 67 70 virtual StateFeedback Terminate() = 0; 71 74 virtual SimState GetSimulationState() const = 0; 75 78 virtual uint64_t GetExecutedStepCount() const = 0; 79 81 virtual void RunOverSimulation() = 0; 82 }; 83 84 } // namespace core 85 } // namespace simulation_framework