i_activity_factory Last update: 16.07.2025 1 5 6 #pragma once 7 8 #include "core/lifecycle/activity/i_activity.h" 9 #include "core/lifecycle/fmu_activity/fmu_config.h" 10 #include "core/scheduler/i_scheduler_client/i_scheduler_client.h" 11 #include "core/time/i_clock/i_clock.h" 12 #include <string> 13 18 namespace simulation_framework 19 { 20 namespace core 21 { 22 namespace lifecycle 23 { 24 30 class IActivityFactory 31 { 32 public: 34 virtual ~IActivityFactory() = default; 35 41 virtual std::unique_ptr<IActivity> Create( 42 const std::string& activity_name, 43 const scheduling::SchedulerClientType type = scheduling::SchedulerClientType::kDUMMY) = 0; 44 51 virtual std::unique_ptr<IActivity> CreateFmuActivity( 52 const std::string& activity_name, 53 const FmuConfig& fmu_config, 54 const scheduling::SchedulerClientType type = scheduling::SchedulerClientType::kDUMMY) = 0; 55 59 virtual time::milliseconds GetSimulationBaseCycleTime() const = 0; 60 64 virtual void SetSimulationBaseCycleTime(const time::milliseconds& time) = 0; 65 }; 66 67 } // namespace lifecycle 68 } // namespace core 69 } // namespace simulation_framework