|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Dynamic (growable) event table implementation. More...
#include <driven_table.H>
Public Types | |
| using | Event_Handler = typename Event_Table< Signature >::Event_Handler |
Public Types inherited from Event_Table< Signature > | |
| using | Event_Handler = std::function< Signature > |
Public Member Functions | |
| size_t | size () const override |
| Get the current table size (implements Event_Table virtual method) | |
| Dynamic_Event_Table (const size_t num_events=0) | |
| Construct a dynamic event table. | |
| Dynamic_Event_Table (const Dynamic_Event_Table &)=delete | |
| Copying disabled (events may contain non-copyable captures) | |
| Dynamic_Event_Table & | operator= (const Dynamic_Event_Table &)=delete |
| Dynamic_Event_Table (Dynamic_Event_Table &&) noexcept=default | |
| Move constructor. | |
| Dynamic_Event_Table & | operator= (Dynamic_Event_Table &&) noexcept=default |
| Move assignment. | |
| ~Dynamic_Event_Table () override=default | |
| Default destructor. | |
Public Member Functions inherited from Event_Table< Signature > | |
| virtual | ~Event_Table ()=default |
| Virtual destructor for proper cleanup in derived classes. | |
| template<typename Callable > | |
| void | register_event (const size_t index, Callable &&fct) |
| Register an event at a specific index. | |
| template<typename Callable > | |
| size_t | register_event (Callable &&fct) |
| Append a new event and return its auto-assigned index. | |
| void | unregister_event (const size_t index) |
| Unregister an event at the given index. | |
| bool | is_registered (const size_t index) const |
| Check if an event is registered at the given index. | |
| template<typename F > | |
| bool | check (const size_t, F) const |
| Legacy check method (for backward compatibility). | |
| template<typename... Args> | |
| auto | execute_event (const size_t index, Args &&... args) const |
| Execute the event at the given index with type-safe arguments. | |
Private Member Functions | |
| const Event_Handler * | read_table (const size_t i) const override |
| Read event at index (implements Event_Table virtual method) | |
| void | write_table (const size_t i, Event_Handler &&event_fct) override |
| Write event at index (implements Event_Table virtual method) | |
| void | clear_slot (size_t i) override |
| Clear event at index (implements Event_Table virtual method) | |
Private Attributes | |
| DynArray< Event_Handler > | table |
| Dynamic array of event handlers. | |
Additional Inherited Members |
Dynamic (growable) event table implementation.
Uses a dynamic array that can grow as events are added. Suitable when the number of events is not known in advance or when events are added dynamically at runtime.
| Signature | Function signature for events (e.g., void(int), int(double, bool)) |
When appending beyond current size, the underlying DynArray grows according to its own growth strategy (typically doubling capacity).
Definition at line 514 of file driven_table.H.
| using Dynamic_Event_Table< Signature >::Event_Handler = typename Event_Table<Signature>::Event_Handler |
Definition at line 517 of file driven_table.H.
|
inlineexplicit |
Construct a dynamic event table.
| num_events | Initial number of event slots (default: 0) |
All initial slots are initialized to empty. The table can grow beyond this initial size as events are added.
Definition at line 552 of file driven_table.H.
References Aleph::maps(), and Dynamic_Event_Table< Signature >::table.
|
delete |
Copying disabled (events may contain non-copyable captures)
|
defaultnoexcept |
Move constructor.
|
overridedefault |
Default destructor.
|
inlineoverrideprivatevirtual |
Clear event at index (implements Event_Table virtual method)
Implements Event_Table< Signature >.
Definition at line 536 of file driven_table.H.
References Dynamic_Event_Table< Signature >::table.
|
delete |
|
defaultnoexcept |
Move assignment.
|
inlineoverrideprivatevirtual |
Read event at index (implements Event_Table virtual method)
Implements Event_Table< Signature >.
Definition at line 523 of file driven_table.H.
References Dynamic_Event_Table< Signature >::table.
|
inlineoverridevirtual |
Get the current table size (implements Event_Table virtual method)
Implements Event_Table< Signature >.
Definition at line 543 of file driven_table.H.
References Aleph::DynArray< T >::size(), and Dynamic_Event_Table< Signature >::table.
|
inlineoverrideprivatevirtual |
Write event at index (implements Event_Table virtual method)
Implements Event_Table< Signature >.
Definition at line 530 of file driven_table.H.
References Aleph::maps(), and Dynamic_Event_Table< Signature >::table.
|
private |
Dynamic array of event handlers.
Definition at line 520 of file driven_table.H.
Referenced by Dynamic_Event_Table< Signature >::Dynamic_Event_Table(), Dynamic_Event_Table< Signature >::clear_slot(), Dynamic_Event_Table< Signature >::read_table(), Dynamic_Event_Table< Signature >::size(), and Dynamic_Event_Table< Signature >::write_table().