Base Framework
Public Types | Public Member Functions | Protected Attributes | List of all members
EventDispatcher< SENDER, LISTENER > Class Template Reference

Event dispatcher. More...

#include <base/EventDispatcher.h>

Inherits Object.

Public Types

typedef SENDER Sender
 
typedef LISTENER Listener
 

Public Member Functions

 EventDispatcher (const Signal< Sender, Listener > &_signal) noexcept
 
void add (Listener *listener) noexcept
 
void remove (Listener *listener) noexcept
 
void notify () const noexcept
 

Protected Attributes

Set< Listener * > listeners
 
Signal< Sender, Listenersignal
 

Detailed Description

template<class SENDER, class LISTENER>
class EventDispatcher< SENDER, LISTENER >

Event dispatcher.

Class responsible for sending a given signal to multiple listeners.

Version
1.0

Member Typedef Documentation

◆ Listener

template<class SENDER , class LISTENER >
typedef LISTENER EventDispatcher< SENDER, LISTENER >::Listener

The type of the listener.

◆ Sender

template<class SENDER , class LISTENER >
typedef SENDER EventDispatcher< SENDER, LISTENER >::Sender

The type of the sender.

Constructor & Destructor Documentation

◆ EventDispatcher()

template<class SENDER , class LISTENER >
EventDispatcher< SENDER, LISTENER >::EventDispatcher ( const Signal< Sender, Listener > &  _signal)
inlinenoexcept

Initializes an event dispatcher.

Parameters
signalThe signal to be send on request.

Member Function Documentation

◆ add()

template<class SENDER , class LISTENER >
void EventDispatcher< SENDER, LISTENER >::add ( Listener listener)
inlinenoexcept

Registers the specified listener.

Parameters
listenerThe listener to be deregistered.

◆ notify()

template<class SENDER , class LISTENER >
void EventDispatcher< SENDER, LISTENER >::notify ( ) const
inlinenoexcept

Sends the signal to the registered listeners.

◆ remove()

template<class SENDER , class LISTENER >
void EventDispatcher< SENDER, LISTENER >::remove ( Listener listener)
inlinenoexcept

Deregisters the specified listener.

Parameters
listenerThe listener to be deregistered.

Member Data Documentation

◆ listeners

template<class SENDER , class LISTENER >
Set<Listener*> EventDispatcher< SENDER, LISTENER >::listeners
protected

The registered listeners.

◆ signal

template<class SENDER , class LISTENER >
Signal<Sender, Listener> EventDispatcher< SENDER, LISTENER >::signal
protected

The signal to be send to the listeners.