#pragma once #include "interfaces/command.hpp" #include #include template class IObservable { public: virtual ~IObservable() noexcept = default; virtual void listen() const noexcept = 0; virtual void attach(const char &event, const std::shared_ptr &command) noexcept = 0; virtual void notify(const Event &event) const noexcept = 0; };