    

 ## On this page

  

 

 # sim\_runner

 Last update: 16.07.2025 

<a name="l00001"></a> 1 

<a name="l00003"></a> 3 

<a name="l00004"></a> 4 \#pragma once

<a name="l00005"></a> 5 

<a name="l00006"></a> 6 \#include "core/lifecycle/i\_simulation\_instance/i\_simulation\_instance.h"

<a name="l00007"></a> 7 \#include "core/service/sim\_runner/i\_sim\_runner.h"

<a name="l00008"></a> 8 \#include &lt;memory&gt;

<a name="l00009"></a> 9 

<a name="l00014"></a> 14 namespace [simulation\_framework](namespacesimulation__framework.xhtml)

<a name="l00015"></a> 15 {

<a name="l00016"></a> 16 namespace [core](namespacecore.xhtml)

<a name="l00017"></a> 17 {

<a name="l00018"></a> 18 

<a name="l00019"></a> 19 class SimRunnerImpl;

<a name="l00020"></a> 20 

<a name="l00026"></a>[ 26](classsimulation__framework_1_1core_1_1SimRunner.xhtml) class [SimRunner](classsimulation__framework_1_1core_1_1SimRunner.xhtml) final : public [ISimRunner](classsimulation__framework_1_1core_1_1ISimRunner.xhtml)

<a name="l00027"></a> 27 {

<a name="l00028"></a> 28 public:

<a name="l00030"></a> 30 [~SimRunner](classsimulation__framework_1_1core_1_1SimRunner.xhtml#a86df4168e20485587e74801f5400dda4)();

<a name="l00031"></a> 31 

<a name="l00034"></a> 34 explicit [SimRunner](classsimulation__framework_1_1core_1_1SimRunner.xhtml#a961cc52e44842a326e1fc638a6e6f404)(std::unique_ptr&lt;lifecycle::ISimulationInstance&gt; sim_instance);

<a name="l00035"></a> 35 

<a name="l00039"></a> 39 [StateFeedback](structsimulation__framework_1_1core_1_1StateFeedback.xhtml) [Run](classsimulation__framework_1_1core_1_1SimRunner.xhtml#aa47196cb107ebc1c200ab5fd43fc22f9)() override;

<a name="l00040"></a> 40 

<a name="l00044"></a> 44 [StateFeedback](structsimulation__framework_1_1core_1_1StateFeedback.xhtml) [Pause](classsimulation__framework_1_1core_1_1SimRunner.xhtml#a2008706db821aed76b79bee747a220ac)() override;

<a name="l00045"></a> 45 

<a name="l00049"></a> 49 [StateFeedback](structsimulation__framework_1_1core_1_1StateFeedback.xhtml) [Resume](classsimulation__framework_1_1core_1_1SimRunner.xhtml#a0bc52ce914b51ce4fc709b0686d05475)() override;

<a name="l00050"></a> 50 

<a name="l00054"></a> 54 [StateFeedback](structsimulation__framework_1_1core_1_1StateFeedback.xhtml) [StepN](classsimulation__framework_1_1core_1_1SimRunner.xhtml#aa2aecf086a4535c9a4d05b977deb29f3)(int n) override;

<a name="l00055"></a> 55 

<a name="l00059"></a> 59 [StateFeedback](structsimulation__framework_1_1core_1_1StateFeedback.xhtml) [Stop](classsimulation__framework_1_1core_1_1SimRunner.xhtml#a122aef144fa4620085078b7ef1d58645)() override;

<a name="l00060"></a> 60 

<a name="l00063"></a> 63 [StateFeedback](structsimulation__framework_1_1core_1_1StateFeedback.xhtml) [Terminate](classsimulation__framework_1_1core_1_1SimRunner.xhtml#a6b54a3a3676bc74deea17f50910c3e5b)() override;

<a name="l00064"></a> 64 

<a name="l00067"></a> 67 SimState [GetSimulationState](classsimulation__framework_1_1core_1_1SimRunner.xhtml#ab5f6d34b0bbd35000cfff95bcfeb901f)() const;

<a name="l00068"></a> 68 

<a name="l00072"></a> 72 uint64_t [GetExecutedStepCount](classsimulation__framework_1_1core_1_1SimRunner.xhtml#ab7b56bf2aa50f1ca9b14b928268939eb)() const;

<a name="l00073"></a> 73 

<a name="l00075"></a> 75 void [RunOverSimulation](classsimulation__framework_1_1core_1_1SimRunner.xhtml#a4ba901d04097297295b7b680ac151da9)() override;

<a name="l00076"></a> 76 

<a name="l00077"></a> 77 private:

<a name="l00079"></a> 79 std::unique_ptr&lt;SimRunnerImpl&gt; impl_;

<a name="l00080"></a> 80 };

<a name="l00081"></a> 81 

<a name="l00082"></a> 82 } // namespace core

<a name="l00083"></a> 83 } // namespace simulation\_framework