#pragma once #include "interfaces/subscriber.hpp" #include #include template // NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) class IPublisher { public: virtual ~IPublisher() noexcept = default; virtual void subscribe( const Event &event, const std::shared_ptr> &subscriber) noexcept = 0; virtual void notify_subscribers(const Event &event, const Context &context) const noexcept = 0; };