i_publisher Last update: 16.07.2025 1 5 6 #pragma once 7 8 #include <chrono> 9 #include <memory> 10 #include <string> 11 #include <vector> 12 13 namespace simulation_framework 14 { 15 namespace core 16 { 17 18 class IPublisher 19 { 20 public: 21 virtual ~IPublisher() = default; 22 virtual void Execute() = 0; 23 virtual void Init() = 0; 24 virtual bool WaitForSubscriber(std::chrono::milliseconds timeout = std::chrono::milliseconds(60000)) = 0; 25 virtual bool WaitForSubscribersInNumberOf(const int subscriber_count, 26 std::chrono::milliseconds timeout = std::chrono::milliseconds(60000)) = 0; 27 }; 28 29 using Publishers = std::vector<std::unique_ptr<IPublisher>>; 30 31 } // namespace core 32 } // namespace simulation_framework