File simulation_instance.h
Last update: 22.04.2026Location: core/lifecycle/simulation_instance/simulation_instance.h
Classes
Namespaces
Includes
- core/export/simfwk_core_export.h
- core/lifecycle/i_activity_factory/i_activity_factory.h
- core/lifecycle/i_simulation_instance/i_simulation_instance.h
- core/logging/logging.h
- core/service/parameter/simulation_parameters.h
- core/service/standalone_activity_service/standalone_init_data/standalone_init_data.h
- core/time/i_clock/i_clock.h
- core/time/i_simulation_completion_checker/i_simulation_completion_checker.h
Source
#ifndef SIMFWK_CORE_LIFECYCLE_SIMULATIONINSTANCE_SIMULATIONINSTANCE_H
#define SIMFWK_CORE_LIFECYCLE_SIMULATIONINSTANCE_SIMULATIONINSTANCE_H
#include "core/export/simfwk_core_export.h"
#include "core/lifecycle/i_activity_factory/i_activity_factory.h"
#include "core/lifecycle/i_simulation_instance/i_simulation_instance.h"
#include "core/logging/logging.h"
#include "core/service/parameter/simulation_parameters.h"
#include "core/service/standalone_activity_service/standalone_init_data/standalone_init_data.h"
#include "core/time/i_clock/i_clock.h"
#include "core/time/i_simulation_completion_checker/i_simulation_completion_checker.h"
namespace simulation_framework
{
namespace core
{
namespace lifecycle
{
class SimulationInstanceImpl;
class SIMFWK_CORE_API SimulationInstance final : public ISimulationInstance
{
public:
SimulationInstance(std::unique_ptr<IActivityFactory> activity_factory,
std::shared_ptr<core::time::IClock> sim_clock,
std::unique_ptr<time::ISimulationCompletionChecker> sim_state_checker,
const core::StandaloneInitData& standalone_init_data,
const core::SimulationParameters& core_parameters);
SimulationInstance(std::unique_ptr<IActivityFactory> activity_factory,
std::shared_ptr<core::time::IClock> sim_clock,
std::unique_ptr<time::ISimulationCompletionChecker> sim_state_checker,
const core::StandaloneInitData& standalone_init_data,
const std::string& scheduling_config_path,
const logging::LogLevel log_level = logging::LogLevel::kDebug);
~SimulationInstance();
void Init() override;
void StepOnce() override;
void Reset() override;
bool IsSimulationFinished() override;
bool IsPauseRequested() override;
std::chrono::milliseconds GetSimulationDuration() const override;
std::chrono::milliseconds GetSimulationBaseCycleTime() const override;
private:
std::unique_ptr<SimulationInstanceImpl> impl_;
};
} // namespace lifecycle
} // namespace core
} // namespace simulation_framework
#endif // SIMFWK_CORE_LIFECYCLE_SIMULATIONINSTANCE_SIMULATIONINSTANCE_H