EventRegistry implementation that keeps event handlers in a SortedListMap and filters the event handler calls based on the registered event handler arguments (id/mask).
More...
#include <EventHandlerContainer.hxx>
|
| struct | cmpop |
| | Comparison operator for event registry entries. More...
|
| |
| class | Iterator |
| | Class representing the iteration state on the binary tree-based event handler registry. More...
|
| |
|
| MaskLookupMap | handlers_ |
| | The registered handlers.
|
| |
|
| static unsigned | align_mask (EventId *event, unsigned size) |
| | Computes the alignment mask for registering an event range.
|
| |
| static EventRegistry * | instance () |
| |
| static bool | exists () |
| |
| void | set_dirty () |
| | Implementations must call this function from register and unregister handler to mark iterators being invalidated.
|
| |
| void | lock () |
| |
| void | unlock () |
| |
EventRegistry implementation that keeps event handlers in a SortedListMap and filters the event handler calls based on the registered event handler arguments (id/mask).
Definition at line 150 of file EventHandlerContainer.hxx.
◆ MaskLookupMap
| typedef std::map<uint8_t, OneMaskMap> openlcb::TreeEventHandlers::MaskLookupMap |
|
private |
◆ OneMaskMap
◆ TreeEventHandlers()
| openlcb::TreeEventHandlers::TreeEventHandlers |
( |
| ) |
|
◆ create_iterator()
◆ register_handler()
| void openlcb::TreeEventHandlers::register_handler |
( |
const EventRegistryEntry & |
entry, |
|
|
unsigned |
mask |
|
) |
| |
|
virtual |
Adds a new event handler to the registry.
- Parameters
-
| entry | is the structure parametrizingthe registration. |
| mask | is used for registering consecutive events; zero for registering just one event; otherwise use {align_mask} to compute the base value and mask to use for registering a range of events. |
Implements openlcb::EventRegistry.
Definition at line 42 of file EventHandlerContainer.cxx.
◆ reserve()
| void openlcb::TreeEventHandlers::reserve |
( |
size_t |
count | ) |
|
|
virtual |
◆ unregister_handler()
| void openlcb::TreeEventHandlers::unregister_handler |
( |
EventHandler * |
handler, |
|
|
uint32_t |
user_arg = 0, |
|
|
uint32_t |
user_arg_mask = 0 |
|
) |
| |
|
virtual |
Removes all registered instances of a given event handler pointer.
- Parameters
-
| handler | the handler for which to unregister entries |
| user_arg | values of the 32-bit user arg to remove |
| user_arg_mask | 32-bit mask where to verify user_arg being equal |
Implements openlcb::EventRegistry.
Definition at line 51 of file EventHandlerContainer.cxx.
◆ Iterator
◆ handlers_
| MaskLookupMap openlcb::TreeEventHandlers::handlers_ |
|
private |
The registered handlers.
The offset in the first map tell us how many bits wide the registration is (it is the mask value in the register call).
Definition at line 187 of file EventHandlerContainer.hxx.
The documentation for this class was generated from the following files: