/* * Author: Patrick-Christopher Mattulat * Company: Lynar Studios * E-Mail: webmaster@lynarstudios.com * Created: 2024-05-16 * Changed: 2024-09-11 * * */ #ifndef LS_STD_EVENT_HPP #define LS_STD_EVENT_HPP #include #include #include #include /* * @doc: class(name: 'Event', package: 'event') * @doc: event.Event.description('This class represents an event that can be invoked.') * */ namespace ls::std::event { class LS_STD_DYNAMIC_GOAL Event : public ls::std::core::Class { public: explicit Event(const ::std::string &_name); ~Event() noexcept override; [[nodiscard]] ::std::shared_ptr getManager() const; void setManager(const ::std::shared_ptr &_manager); [[nodiscard]] ls::std::event::Event supervisedBy(const ::std::shared_ptr &_manager) const; private: ::std::shared_ptr manager{}; }; } #endif