|
@@ -3,7 +3,7 @@
|
|
|
* Company: Lynar Studios
|
|
|
* E-Mail: webmaster@lynarstudios.com
|
|
|
* Created: 2024-05-16
|
|
|
-* Changed: 2024-05-30
|
|
|
+* Changed: 2024-05-31
|
|
|
*
|
|
|
* */
|
|
|
|
|
@@ -16,42 +16,42 @@
|
|
|
|
|
|
#include <list>
|
|
|
#include <ls-std/core/Class.hpp>
|
|
|
+#include <ls-std/core/definition.hpp>
|
|
|
#include <ls-std/event/type/EventTypes.hpp>
|
|
|
-#include <ls-std/os/dynamic-goal.hpp>
|
|
|
#include <memory>
|
|
|
#include <unordered_map>
|
|
|
|
|
|
namespace ls::std::event::type
|
|
|
{
|
|
|
- using event_listeners = ::std::list<::std::pair<::std::shared_ptr<ls::std::event::EventListener>, ls::std::event::type::event_action>>;
|
|
|
- using event_observability_inventory = ::std::unordered_map<::std::string, ls::std::event::type::event_listeners>;
|
|
|
+ using event_listeners = ::std::list<::std::pair<::std::shared_ptr<EventListener>, event_action>>;
|
|
|
+ using event_observability_inventory = ::std::unordered_map<::std::string, event_listeners>;
|
|
|
}
|
|
|
|
|
|
namespace ls::std::event
|
|
|
{
|
|
|
- class LS_STD_DYNAMIC_GOAL EventManager : public ls::std::core::Class
|
|
|
+ ls_std_class EventManager final : public core::Class
|
|
|
{
|
|
|
public:
|
|
|
|
|
|
explicit EventManager();
|
|
|
~EventManager() noexcept override;
|
|
|
|
|
|
- [[nodiscard]] ls::std::event::type::listener_id getNextProvisionId() const;
|
|
|
- [[nodiscard]] bool holdsListenerForEvent(ls::std::event::type::listener_id _id, const ls::std::event::Event &_event);
|
|
|
- void invoke(const ls::std::event::Event &_event);
|
|
|
- void invoke(const ls::std::event::Event &_event, const ls::std::event::EventParameter &_parameter);
|
|
|
- [[nodiscard]] ls::std::event::type::listener_id requestListenerId();
|
|
|
- void subscribeListenerForEvent(::std::shared_ptr<ls::std::event::EventListener> _listener, const ls::std::event::Event &_event, ls::std::event::type::event_action _action);
|
|
|
- void unsubscribeListenerForEvent(const ::std::shared_ptr<ls::std::event::EventListener> &_listener, const ls::std::event::Event &_event);
|
|
|
+ [[nodiscard]] type::listener_id getNextProvisionId() const;
|
|
|
+ [[nodiscard]] bool holdsListenerForEvent(type::listener_id _id, const Event &_event);
|
|
|
+ void invoke(const Event &_event);
|
|
|
+ void invoke(const Event &_event, const EventParameter &_parameter);
|
|
|
+ [[nodiscard]] type::listener_id requestListenerId();
|
|
|
+ void subscribeListenerForEvent(::std::shared_ptr<EventListener> _listener, const Event &_event, type::event_action _action);
|
|
|
+ void unsubscribeListenerForEvent(const ::std::shared_ptr<EventListener> &_listener, const Event &_event);
|
|
|
|
|
|
private:
|
|
|
|
|
|
- ls::std::event::type::event_observability_inventory inventory{};
|
|
|
- ls::std::event::type::listener_id provisionId = 1;
|
|
|
+ type::event_observability_inventory inventory{};
|
|
|
+ type::listener_id provisionId = 1;
|
|
|
|
|
|
- static void _giveListenersParameter(const ls::std::event::type::event_listeners &_listeners, const ls::std::event::EventParameter &_parameter);
|
|
|
- static void _notifyListeners(const ls::std::event::type::event_listeners &_listeners);
|
|
|
- bool _observesEvent(const ls::std::event::Event &_event) const;
|
|
|
+ static void _giveListenersParameter(const type::event_listeners &_listeners, const EventParameter &_parameter);
|
|
|
+ static void _notifyListeners(const type::event_listeners &_listeners);
|
|
|
+ [[nodiscard]] bool _observesEvent(const Event &_event) const;
|
|
|
};
|
|
|
}
|
|
|
|