浏览代码

Improve code quality in event module

Patrick-Christopher Mattulat 10 月之前
父节点
当前提交
da4e7fc717

+ 7 - 8
include/ls-std/event/Event.hpp

@@ -3,7 +3,7 @@
 * Company:         Lynar Studios
 * E-Mail:          webmaster@lynarstudios.com
 * Created:         2024-05-16
-* Changed:         2024-05-30
+* Changed:         2024-05-31
 *
 * */
 
@@ -11,26 +11,25 @@
 #define LS_STD_EVENT_HPP
 
 #include <ls-std/core/Class.hpp>
-#include <ls-std/os/dynamic-goal.hpp>
+#include <ls-std/core/definition.hpp>
 #include <memory>
-#include <string>
 
 namespace ls::std::event
 {
-  class LS_STD_DYNAMIC_GOAL Event : public ls::std::core::Class
+  ls_std_class Event : public core::Class
   {
     public:
 
       explicit Event(const ::std::string &_name);
       ~Event() noexcept override;
 
-      [[nodiscard]] ::std::shared_ptr<ls::std::core::Class> getManager() const;
-      void setManager(const ::std::shared_ptr<ls::std::core::Class> &_manager);
-      [[nodiscard]] ls::std::event::Event supervisedBy(const ::std::shared_ptr<ls::std::core::Class> &_manager) const;
+      [[nodiscard]] ::std::shared_ptr<Class> getManager() const;
+      void setManager(const ::std::shared_ptr<Class> &_manager);
+      [[nodiscard]] Event supervisedBy(const ::std::shared_ptr<Class> &_manager) const;
 
     private:
 
-      ::std::shared_ptr<ls::std::core::Class> manager{};
+      ::std::shared_ptr<Class> manager{};
   };
 }
 

+ 13 - 13
include/ls-std/event/EventListener.hpp

@@ -3,7 +3,7 @@
 * Company:         Lynar Studios
 * E-Mail:          webmaster@lynarstudios.com
 * Created:         2024-05-16
-* Changed:         2024-05-30
+* Changed:         2024-05-31
 *
 * */
 
@@ -12,36 +12,36 @@
 
 #include "Event.hpp"
 #include "EventParameter.hpp"
+#include <ls-std/core/definition.hpp>
 #include <ls-std/core/Class.hpp>
 #include <ls-std/event/type/EventTypes.hpp>
-#include <ls-std/os/dynamic-goal.hpp>
 
 namespace ls::std::event
 {
-  class LS_STD_DYNAMIC_GOAL EventListener : public ::std::enable_shared_from_this<EventListener>, public ls::std::core::Class
+  ls_std_class EventListener : public ::std::enable_shared_from_this<EventListener>, public core::Class
   {
     public:
 
       explicit EventListener();
       ~EventListener() noexcept override;
 
-      [[nodiscard]] ls::std::event::type::listener_id getId() const;
-      void setId(ls::std::event::type::listener_id _id);
-      void setParameter(const ls::std::event::EventParameter &_parameter);
-      [[maybe_unused]] bool subscribe(const ls::std::event::Event &_event, const ls::std::event::type::event_action &_action);
-      [[maybe_unused]] bool unsubscribe(const ls::std::event::Event &_event);
+      [[nodiscard]] type::listener_id getId() const;
+      void setId(type::listener_id _id);
+      void setParameter(const EventParameter &_parameter);
+      [[maybe_unused]] bool subscribe(const Event &_event, const type::event_action &_action);
+      [[maybe_unused]] bool unsubscribe(const Event &_event);
 
     protected:
 
-    ls::std::event::EventParameter parameter{};
+    EventParameter parameter{};
 
     private:
 
-      ls::std::event::type::listener_id id{};
+      type::listener_id id{};
 
-      void _requestListenerId(const ::std::shared_ptr<ls::std::core::Class> &_manager);
-      [[nodiscard]] bool _subscribe(const ls::std::event::Event &_event, const ls::std::event::type::event_action &_action);
-      [[nodiscard]] bool _unsubscribe(const ls::std::event::Event &_event);
+      void _requestListenerId(const ::std::shared_ptr<Class> &_manager);
+      [[nodiscard]] bool _subscribe(const Event &_event, const type::event_action &_action);
+      [[nodiscard]] bool _unsubscribe(const Event &_event);
   };
 }
 

+ 17 - 17
include/ls-std/event/EventManager.hpp

@@ -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;
   };
 }
 

+ 4 - 4
include/ls-std/event/EventParameter.hpp

@@ -3,20 +3,20 @@
 * Company:         Lynar Studios
 * E-Mail:          webmaster@lynarstudios.com
 * Created:         2024-05-30
-* Changed:         2024-05-30
+* Changed:         2024-05-31
 *
 * */
 
 #ifndef EVENT_PARAMETER_HPP
-#define EVENT_PARAMETER_HPP
+#define EVENT_PARAMETER_HPP // TODO: all preprocessors should have LS_STD_prefix
 
 #include <list>
-#include <ls-std/os/dynamic-goal.hpp>
+#include <ls-std/core/definition.hpp>
 #include <string>
 
 namespace ls::std::event
 {
-  class LS_STD_DYNAMIC_GOAL EventParameter
+  ls_std_class EventParameter
   {
     public:
 

+ 5 - 5
source/ls-std/event/EventListener.cpp

@@ -3,7 +3,7 @@
 * Company:         Lynar Studios
 * E-Mail:          webmaster@lynarstudios.com
 * Created:         2024-05-16
-* Changed:         2024-05-30
+* Changed:         2024-05-31
 *
 * */
 
@@ -32,7 +32,7 @@ listener_id EventListener::getId() const
   return this->id;
 }
 
-void EventListener::setId(listener_id _id)
+void EventListener::setId(const listener_id _id)
 {
   this->id = _id;
 }
@@ -58,7 +58,7 @@ bool EventListener::unsubscribe(const Event &_event)
 
 void EventListener::_requestListenerId(const shared_ptr<Class> &_manager)
 {
-  shared_ptr<EventManager> manager = dynamic_pointer_cast<EventManager>(_manager);
+  const shared_ptr<EventManager> manager = dynamic_pointer_cast<EventManager>(_manager);
 
   if (this->id == 0)
   {
@@ -70,7 +70,7 @@ bool EventListener::_subscribe(const Event &_event, const event_action &_action)
 {
   bool subscribed{};
 
-  if (shared_ptr<EventManager> manager = dynamic_pointer_cast<EventManager>(_event.getManager()); !manager->holdsListenerForEvent(this->id, _event))
+  if (const shared_ptr<EventManager> manager = dynamic_pointer_cast<EventManager>(_event.getManager()); !manager->holdsListenerForEvent(this->id, _event))
   {
     manager->subscribeListenerForEvent(shared_from_this(), _event, _action);
     subscribed = manager->holdsListenerForEvent(this->id, _event);
@@ -83,7 +83,7 @@ bool EventListener::_unsubscribe(const Event &_event)
 {
   bool unsubscribed{};
 
-  if (shared_ptr<EventManager> manager = dynamic_pointer_cast<EventManager>(_event.getManager()); manager->holdsListenerForEvent(this->id, _event))
+  if (const shared_ptr<EventManager> manager = dynamic_pointer_cast<EventManager>(_event.getManager()); manager->holdsListenerForEvent(this->id, _event))
   {
     manager->unsubscribeListenerForEvent(shared_from_this(), _event);
     unsubscribed = !manager->holdsListenerForEvent(this->id, _event);

+ 7 - 7
source/ls-std/event/EventManager.cpp

@@ -3,7 +3,7 @@
 * Company:         Lynar Studios
 * E-Mail:          webmaster@lynarstudios.com
 * Created:         2024-05-16
-* Changed:         2024-05-30
+* Changed:         2024-05-31
 *
 * */
 
@@ -34,7 +34,7 @@ listener_id EventManager::getNextProvisionId() const
   return this->provisionId;
 }
 
-bool EventManager::holdsListenerForEvent(listener_id _id, const Event &_event)
+bool EventManager::holdsListenerForEvent(const listener_id _id, const Event &_event)
 {
   bool holdsListener{};
 
@@ -62,7 +62,7 @@ void EventManager::invoke(const Event &_event)
   }
 
   const auto &listeners = this->inventory[_event.getClassName()];
-  EventManager::_notifyListeners(listeners);
+  _notifyListeners(listeners);
 }
 
 void EventManager::invoke(const Event &_event, const EventParameter &_parameter)
@@ -73,13 +73,13 @@ void EventManager::invoke(const Event &_event, const EventParameter &_parameter)
   }
 
   const auto &listeners = this->inventory[_event.getClassName()];
-  EventManager::_giveListenersParameter(listeners, _parameter);
-  EventManager::_notifyListeners(listeners);
+  _giveListenersParameter(listeners, _parameter);
+  _notifyListeners(listeners);
 }
 
 listener_id EventManager::requestListenerId()
 {
-  listener_id providedId = this->provisionId;
+  const listener_id providedId = this->provisionId;
   ++this->provisionId;
 
   return providedId;
@@ -92,7 +92,7 @@ void EventManager::subscribeListenerForEvent(shared_ptr<EventListener> _listener
     this->inventory[_event.getClassName()] = {};
   }
 
-  auto inventoryEntry = make_pair<shared_ptr<EventListener>, event_action>(::move(_listener), ::move(_action));
+  const auto inventoryEntry = make_pair<shared_ptr<EventListener>, event_action>(::move(_listener), ::move(_action));
   this->inventory[_event.getClassName()].push_back(inventoryEntry);
 }
 

+ 5 - 5
test/cases/event/EventManagerTest.cpp

@@ -3,7 +3,7 @@
 * Company:         Lynar Studios
 * E-Mail:          webmaster@lynarstudios.com
 * Created:         2024-05-16
-* Changed:         2024-05-30
+* Changed:         2024-05-31
 *
 * */
 
@@ -56,7 +56,7 @@ namespace
 
   TEST_F(EventManagerTest, holdsListenerForEvent)
   {
-    auto eventManager = make_shared<EventManager>();
+    const auto eventManager = make_shared<EventManager>();
     ASSERT_FALSE(eventManager->holdsListenerForEvent(1, OnClickEvent()));
   }
 
@@ -67,7 +67,7 @@ namespace
     auto myBlueButton = make_shared<Button>();
     myBlueButton->subscribe(OnClickEvent().supervisedBy(eventManager), [myBlueButton]() mutable { myBlueButton->onClickEvent(); });
     myBlueButton->subscribe(ChangeColorEvent().supervisedBy(eventManager), [myBlueButton]() mutable { myBlueButton->onChangeColorEvent(); });
-    auto myRedButton = make_shared<Button>();
+    const auto myRedButton = make_shared<Button>();
     auto myGreenButton = make_shared<Button>();
     myGreenButton->subscribe(ChangeColorEvent().supervisedBy(eventManager), [myGreenButton]() mutable { myGreenButton->onChangeColorEvent(); });
 
@@ -126,7 +126,7 @@ namespace
 
   TEST_F(EventManagerTest, subscribeListenerForEvent)
   {
-    auto eventManager = make_shared<EventManager>();
+    const auto eventManager = make_shared<EventManager>();
     auto myButton = make_shared<Button>();
 
     eventManager->subscribeListenerForEvent(myButton, OnClickEvent(), [myButton]() mutable { myButton->onClickEvent(); });
@@ -135,7 +135,7 @@ namespace
 
   TEST_F(EventManagerTest, unsubscribeListenerForEvent)
   {
-    auto eventManager = make_shared<EventManager>();
+    const auto eventManager = make_shared<EventManager>();
     auto myButton = make_shared<Button>();
 
     eventManager->subscribeListenerForEvent(myButton, OnClickEvent(), [myButton]() mutable { myButton->onClickEvent(); });

+ 4 - 4
test/cases/event/EventTest.cpp

@@ -3,7 +3,7 @@
 * Company:         Lynar Studios
 * E-Mail:          webmaster@lynarstudios.com
 * Created:         2024-05-16
-* Changed:         2024-05-30
+* Changed:         2024-05-31
 *
 * */
 
@@ -39,7 +39,7 @@ namespace
 
   TEST_F(EventTest, of)
   {
-    auto event = Event("TmpEvent").supervisedBy(make_shared<EventManager>());
+    const auto event = Event("TmpEvent").supervisedBy(make_shared<EventManager>());
 
     ASSERT_STREQ("TmpEvent", event.getClassName().c_str());
     ASSERT_TRUE(event.getManager() != nullptr);
@@ -53,7 +53,7 @@ namespace
           {
             auto event = Event("TmpEvent").supervisedBy(nullptr);
           }
-          catch (const IllegalArgumentException &_exception)
+          catch ([[maybe_unused]] const IllegalArgumentException &_exception)
           {
             throw;
           }
@@ -80,7 +80,7 @@ namespace
           {
             event.setManager(nullptr);
           }
-          catch (const IllegalArgumentException &_exception)
+          catch ([[maybe_unused]] const IllegalArgumentException &_exception)
           {
             throw;
           }