diff --git a/src/entt/signal/dispatcher.hpp b/src/entt/signal/dispatcher.hpp index 448aea759..04df631d5 100644 --- a/src/entt/signal/dispatcher.hpp +++ b/src/entt/signal/dispatcher.hpp @@ -33,13 +33,13 @@ struct basic_dispatcher_handler { virtual std::size_t size() const ENTT_NOEXCEPT = 0; }; -template +template class dispatcher_handler final: public basic_dispatcher_handler { - static_assert(std::is_same_v>, "Invalid event type"); + static_assert(std::is_same_v>, "Invalid type"); using alloc_traits = std::allocator_traits; - using signal_type = sigh>; - using container_type = std::vector>; + using signal_type = sigh>; + using container_type = std::vector>; public: using allocator_type = Allocator; @@ -67,18 +67,18 @@ public: } [[nodiscard]] auto bucket() ENTT_NOEXCEPT { - using sink_type = typename sigh::sink_type; + using sink_type = typename sigh::sink_type; return sink_type{signal}; } - void trigger(Event event) { + void trigger(Type event) { signal.publish(event); } template void enqueue(Args &&...args) { - if constexpr(std::is_aggregate_v) { - events.push_back(Event{std::forward(args)...}); + if constexpr(std::is_aggregate_v) { + events.push_back(Type{std::forward(args)...}); } else { events.emplace_back(std::forward(args)...); } @@ -106,8 +106,8 @@ private: * A dispatcher can be used either to trigger an immediate event or to enqueue * events to be published all together once per tick.
* Listeners are provided in the form of member functions. For each event of - * type `Event`, listeners are such that they can be invoked with an argument of - * type `Event &`, no matter what the return type is. + * type `Type`, listeners are such that they can be invoked with an argument of + * type `Type &`, no matter what the return type is. * * The dispatcher creates instances of the `sigh` class internally. Refer to the * documentation of the latter for more details. @@ -116,8 +116,8 @@ private: */ template class basic_dispatcher { - template - using handler_type = internal::dispatcher_handler; + template + using handler_type = internal::dispatcher_handler; using key_type = id_type; // std::shared_ptr because of its type erased allocator which is pretty useful here @@ -127,24 +127,24 @@ class basic_dispatcher { using container_allocator = typename alloc_traits::template rebind_alloc>; using container_type = dense_map, container_allocator>; - template - [[nodiscard]] handler_type &assure(const id_type id) { + template + [[nodiscard]] handler_type &assure(const id_type id) { auto &&ptr = pools.first()[id]; if(!ptr) { const auto &allocator = pools.second(); - ptr = std::allocate_shared>(allocator, allocator); + ptr = std::allocate_shared>(allocator, allocator); } - return static_cast &>(*ptr); + return static_cast &>(*ptr); } - template - [[nodiscard]] const handler_type *assure(const id_type id) const { + template + [[nodiscard]] const handler_type *assure(const id_type id) const { auto &container = pools.first(); if(const auto it = container.find(id); it != container.end()) { - return static_cast *>(it->second.get()); + return static_cast *>(it->second.get()); } return nullptr; @@ -211,13 +211,13 @@ public: /** * @brief Returns the number of pending events for a given type. - * @tparam Event Type of event for which to return the count. + * @tparam Type Type of event for which to return the count. * @param id Name used to map the event queue within the dispatcher. * @return The number of pending events for the given type. */ - template - size_type size(const id_type id = type_hash::value()) const ENTT_NOEXCEPT { - const auto *cpool = assure(id); + template + size_type size(const id_type id = type_hash::value()) const ENTT_NOEXCEPT { + const auto *cpool = assure(id); return cpool ? cpool->size() : 0u; } @@ -241,86 +241,87 @@ public: * A sink is an opaque object used to connect listeners to events. * * The function type for a listener is _compatible_ with: + * * @code{.cpp} - * void(Event &); + * void(Type &); * @endcode * * The order of invocation of the listeners isn't guaranteed. * * @sa sink * - * @tparam Event Type of event of which to get the sink. + * @tparam Type Type of event of which to get the sink. * @param id Name used to map the event queue within the dispatcher. * @return A temporary sink object. */ - template - [[nodiscard]] auto sink(const id_type id = type_hash::value()) { - return assure(id).bucket(); + template + [[nodiscard]] auto sink(const id_type id = type_hash::value()) { + return assure(id).bucket(); } /** * @brief Triggers an immediate event of a given type. - * @tparam Event Type of event to trigger. - * @param event An instance of the given type of event. + * @tparam Type Type of event to trigger. + * @param value An instance of the given type of event. */ - template - void trigger(Event &&event = {}) { - trigger(type_hash>::value(), std::forward(event)); + template + void trigger(Type &&value = {}) { + trigger(type_hash>::value(), std::forward(value)); } /** * @brief Triggers an immediate event on a queue of a given type. - * @tparam Event Type of event to trigger. - * @param event An instance of the given type of event. + * @tparam Type Type of event to trigger. + * @param value An instance of the given type of event. * @param id Name used to map the event queue within the dispatcher. */ - template - void trigger(const id_type id, Event &&event = {}) { - assure>(id).trigger(std::forward(event)); + template + void trigger(const id_type id, Type &&value = {}) { + assure>(id).trigger(std::forward(value)); } /** * @brief Enqueues an event of the given type. - * @tparam Event Type of event to enqueue. + * @tparam Type Type of event to enqueue. * @tparam Args Types of arguments to use to construct the event. * @param args Arguments to use to construct the event. */ - template + template void enqueue(Args &&...args) { - enqueue_hint(type_hash::value(), std::forward(args)...); + enqueue_hint(type_hash::value(), std::forward(args)...); } /** * @brief Enqueues an event of the given type. - * @tparam Event Type of event to enqueue. - * @param event An instance of the given type of event. + * @tparam Type Type of event to enqueue. + * @param value An instance of the given type of event. */ - template - void enqueue(Event &&event) { - enqueue_hint(type_hash>::value(), std::forward(event)); + template + void enqueue(Type &&value) { + enqueue_hint(type_hash>::value(), std::forward(value)); } /** * @brief Enqueues an event of the given type. - * @tparam Event Type of event to enqueue. + * @tparam Type Type of event to enqueue. * @tparam Args Types of arguments to use to construct the event. * @param id Name used to map the event queue within the dispatcher. * @param args Arguments to use to construct the event. */ - template + template void enqueue_hint(const id_type id, Args &&...args) { - assure(id).enqueue(std::forward(args)...); + assure(id).enqueue(std::forward(args)...); } /** * @brief Enqueues an event of the given type. - * @tparam Event Type of event to enqueue. + * @tparam Type Type of event to enqueue. * @param id Name used to map the event queue within the dispatcher. - * @param event An instance of the given type of event. + * @param value An instance of the given type of event. */ - template - void enqueue_hint(const id_type id, Event &&event) { - assure>(id).enqueue(std::forward(event)); + template + void enqueue_hint(const id_type id, Type &&value) { + assure>(id).enqueue(std::forward(value)); } /** @@ -349,12 +350,12 @@ public: /** * @brief Discards all the events stored so far in a given queue. - * @tparam Event Type of event to discard. + * @tparam Type Type of event to discard. * @param id Name used to map the event queue within the dispatcher. */ - template - void clear(const id_type id = type_hash::value()) { - assure(id).clear(); + template + void clear(const id_type id = type_hash::value()) { + assure(id).clear(); } /*! @brief Discards all the events queued so far. */ @@ -366,12 +367,12 @@ public: /** * @brief Delivers all the pending events of a given queue. - * @tparam Event Type of event to send. + * @tparam Type Type of event to send. * @param id Name used to map the event queue within the dispatcher. */ - template - void update(const id_type id = type_hash::value()) { - assure(id).publish(); + template + void update(const id_type id = type_hash::value()) { + assure(id).publish(); } /*! @brief Delivers all the pending events. */