![]() |
Contur 2
Educational OS kernel simulator
|
Type-safe event dispatcher supporting multiple subscribers. More...
#include <event.h>
Classes | |
| struct | Subscriber |
Public Types | |
| using | Callback = std::function<void(Args...)> |
| The callback signature for subscribers. | |
Public Member Functions | |
| Event ()=default | |
| ~Event ()=default | |
| Event (const Event &)=delete | |
| Event & | operator= (const Event &)=delete |
| Event (Event &&) noexcept=default | |
| Event & | operator= (Event &&) noexcept=default |
| SubscriptionId | subscribe (Callback callback) |
| Registers a callback to be invoked when the event fires. | |
| bool | unsubscribe (SubscriptionId id) |
| Removes a previously registered subscription. | |
| void | emit (Args... args) const |
| Fires the event, invoking all registered callbacks with the given arguments. | |
| std::size_t | subscriberCount () const noexcept |
| Returns the number of active subscribers. | |
| void | clear () |
| Removes all subscribers. | |
Private Attributes | |
| std::vector< Subscriber > | subscribers_ |
| SubscriptionId | nextId_ = 1 |
Type-safe event dispatcher supporting multiple subscribers.
| Args | The argument types passed to subscribers when the event fires. |
Usage:
| using contur::Event< Args >::Callback = std::function<void(Args...)> |
|
default |
Referenced by Event(), Event(), operator=(), and operator=().
|
default |
|
delete |
References Event().
|
defaultnoexcept |
References Event().
|
inline |
|
inline |
Fires the event, invoking all registered callbacks with the given arguments.
| args | The arguments to forward to each subscriber. |
Definition at line 76 of file event.h.
References subscribers_.
|
delete |
References Event().
|
defaultnoexcept |
References Event().
|
inlinenodiscard |
Registers a callback to be invoked when the event fires.
| callback | The function to call on emit(). |
Definition at line 51 of file event.h.
References nextId_, subscribe(), and subscribers_.
Referenced by subscribe().
|
inlinenodiscardnoexcept |
Returns the number of active subscribers.
Definition at line 85 of file event.h.
References subscribers_.
|
inline |
Removes a previously registered subscription.
| id | The SubscriptionId returned by subscribe(). |
Definition at line 61 of file event.h.
References subscribers_.
|
private |
Definition at line 104 of file event.h.
Referenced by subscribe().
|
private |
Definition at line 103 of file event.h.
Referenced by clear(), emit(), subscribe(), subscriberCount(), and unsubscribe().