i_scheduler_client Last update: 16.07.2025 1 5 6 #pragma once 7 8 #include "core/lifecycle/activity/i_activity.h" 9 #include "core/scheduler/event/simulation_settings.h" 10 #include "core/time/i_clock/timestamp.h" 11 #include <string> 12 13 namespace simulation_framework 14 { 15 namespace core 16 { 17 namespace scheduling 18 { 19 20 using lifecycle::IActivity; 21 23 28 enum class SchedulerClientType 29 { 30 kRTIDDS = 0, 31 kDUMMY, 32 }; 33 34 class ISchedulerClient 35 { 36 public: 37 virtual ~ISchedulerClient() = default; 38 43 virtual void BindActivity(IActivity* activity) = 0; 44 50 virtual bool ShouldStep(const std::string& topic_name) = 0; 51 55 virtual void SendAbort() = 0; 56 60 virtual time::Timestamp GetCurrentTimestamp() const = 0; 61 65 virtual SimulationSettings GetSimulationSettings() const = 0; 66 }; 67 68 } // namespace scheduling 69 } // namespace core 70 } // namespace simulation_framework