avr-classes
Public Member Functions | List of all members
EventDispatcher< SUBSCRIBERCOUNT > Class Template Reference

#include <eventdispatcher.h>

Inheritance diagram for EventDispatcher< SUBSCRIBERCOUNT >:
EventReceiver QueuedEventDispatcher< SUBSCRIBERCOUNT, QUEUESIZE >

Public Member Functions

bool subscribe (EventReceiver *subscriber)
 
void unsubscribe (EventReceiver *subscriber)
 
virtual void onEvent (const Event &event) override
 

Detailed Description

template<uint8_t SUBSCRIBERCOUNT>
class EventDispatcher< SUBSCRIBERCOUNT >

This component is able to receive events and to forward them to a set of subscribers. The events are forwarded in the same context as they are received.

Parameters
SUBSCRIBERCOUNTMaximum number of subscribers.

Member Function Documentation

◆ onEvent()

template<uint8_t SUBSCRIBERCOUNT>
virtual void EventDispatcher< SUBSCRIBERCOUNT >::onEvent ( const Event event)
inlineoverridevirtual

Dispatches event to all subscribers.

Parameters
eventEvent to dispatch.

Implements EventReceiver.

Reimplemented in QueuedEventDispatcher< SUBSCRIBERCOUNT, QUEUESIZE >.

◆ subscribe()

template<uint8_t SUBSCRIBERCOUNT>
bool EventDispatcher< SUBSCRIBERCOUNT >::subscribe ( EventReceiver subscriber)
inline

Subscribe to event dispatcher. Fails if already subscribed.

Parameters
subscriberPointer to EventReceiver to add to the subscriber list.
Returns
True if adding subscription was successful, false otherwise.

◆ unsubscribe()

template<uint8_t SUBSCRIBERCOUNT>
void EventDispatcher< SUBSCRIBERCOUNT >::unsubscribe ( EventReceiver subscriber)
inline

Remove existing subscription.

Parameters
subscriberPointer to EventReceiver to remove from subscriber list.