i_activity Last update: 16.07.2025 1 5 6 #pragma once 7 8 #include "core/service/parameter/simulation_parameters.h" 9 #include "core/time/i_clock/timestamp.h" 10 #include <chrono> 11 #include <memory> 12 #include <string> 13 14 namespace simulation_framework 15 { 16 namespace core 17 { 18 namespace lifecycle 19 { 20 22 27 class IActivity 28 { 29 public: 30 virtual ~IActivity() = default; 31 35 virtual void Init() = 0; 36 40 virtual bool WaitForPubSubConnection() = 0; 41 45 virtual void Step() = 0; 46 50 virtual void Shutdown() = 0; 51 55 virtual std::string GetName() const = 0; 56 60 virtual time::Timestamp GetCurrentTimestamp() const = 0; 61 65 virtual std::chrono::milliseconds GetCycleTime() const = 0; 66 70 virtual std::vector<File> GetInputFiles() const = 0; 71 75 virtual std::string GetSimulationOutputDirectory() const = 0; 76 80 virtual void SetUpCommunication() = 0; 81 }; 82 83 } // namespace lifecycle 84 } // namespace core 85 } // namespace simulation_framework