File i_scheduler_client.h
Last update: 22.04.2026Location: core/scheduler/i_scheduler_client/i_scheduler_client.h
Classes
Namespaces
Includes
- core/export/simfwk_core_export.h
- core/lifecycle/activity/i_activity.h
- core/scheduler/event/simulation_settings.h
- core/time/i_clock/timestamp.h
-
Included by
- activity_factory.h
- base_activity.h
- fmu_base_activity.h
- i_activity_factory.h
- scheduler_client_creator.h
Source
#ifndef SIMFWK_CORE_SCHEDULER_ISCHEDULERCLIENT_ISCHEDULERCLIENT_H
#define SIMFWK_CORE_SCHEDULER_ISCHEDULERCLIENT_ISCHEDULERCLIENT_H
#include "core/export/simfwk_core_export.h"
#include "core/lifecycle/activity/i_activity.h"
#include "core/scheduler/event/simulation_settings.h"
#include "core/time/i_clock/timestamp.h"
#include <string>
namespace simulation_framework
{
namespace core
{
namespace scheduling
{
using lifecycle::IActivity;
enum class SchedulerClientType
{
kRTIDDS = 0,
kDUMMY,
};
class SIMFWK_CORE_API ISchedulerClient
{
public:
virtual ~ISchedulerClient() = default;
virtual void BindActivity(IActivity* activity) = 0;
virtual bool ShouldStep(const std::string& topic_name) = 0;
virtual void SendAbort() = 0;
virtual time::Timestamp GetCurrentTimestamp() const = 0;
virtual const SimulationSettings& GetSimulationSettings() const = 0;
virtual bool IsPrimaryActivity() const = 0;
virtual void SetSimulationSettings(const SimulationSettings& sim_settings) = 0;
};
} // namespace scheduling
} // namespace core
} // namespace simulation_framework
#endif // SIMFWK_CORE_SCHEDULER_ISCHEDULERCLIENT_ISCHEDULERCLIENT_H