activity_factory Last update: 16.07.2025 1 5 6 #pragma once 7 8 #include "core/lifecycle/i_activity_factory/i_activity_factory.h" 9 #include "core/scheduler/i_scheduler_client/i_scheduler_client.h" 10 #include "core/service/parameter/simulation_parameters.h" 11 16 namespace simulation_framework 17 { 18 23 namespace autonomy 24 { 25 26 using namespace simulation_framework::core; 27 using namespace simulation_framework::core::lifecycle; 28 38 class ActivityFactory : public IActivityFactory 39 { 40 public: 46 ActivityFactory(const core::SimulationParameters& sim_params, 47 const time::milliseconds& base_cycle_time = time::milliseconds{50}); 48 58 std::unique_ptr<core::lifecycle::IActivity> Create( 59 const std::string& activity_name, 60 const core::scheduling::SchedulerClientType type = core::scheduling::SchedulerClientType::kDUMMY) override; 61 72 std::unique_ptr<IActivity> CreateFmuActivity( 73 const std::string& activity_name, 74 const core::lifecycle::FmuConfig& fmu_config, 75 const scheduling::SchedulerClientType type = scheduling::SchedulerClientType::kDUMMY) override; 76 81 time::milliseconds GetSimulationBaseCycleTime() const override; 82 87 void SetSimulationBaseCycleTime(const time::milliseconds& time) override; 88 89 private: 91 core::SimulationParameters sim_params_; 92 94 time::milliseconds base_cycle_time_; 95 }; 96 97 } // namespace autonomy 98 } // namespace simulation_framework