version 0.4.4
Ikarus::Broadcaster< MT, S > Class Template Reference

Implements a Broadcaster for a given MessageType and BroadcasterState. More...

#include <ikarus/utils/broadcaster/broadcaster.hh>

Inheritance diagram for Ikarus::Broadcaster< MT, S >:
[legend]

Public Types

using MessageType = MT
 
using State = S
 
using Callback = std::function< void(MT, const State &)>
 
using Token = std::shared_ptr< Callback >
 

Public Member Functions

Token registerListener (Callback callback)
 This method is used to register a Listener function. More...
 
void unregisterListener (Token token)
 deregisters a specific function More...
 
void notify (MT message, const State &data)
 This calls all the registered functions. More...
 

Detailed Description

template<typename MT, typename S>
class Ikarus::Broadcaster< MT, S >
Template Parameters
MTthe message type
Sthe broadcaster state

Member Typedef Documentation

◆ Callback

template<typename MT , typename S >
using Ikarus::Broadcaster< MT, S >::Callback = std::function<void(MT, const State&)>

◆ MessageType

template<typename MT , typename S >
using Ikarus::Broadcaster< MT, S >::MessageType = MT

◆ State

template<typename MT , typename S >
using Ikarus::Broadcaster< MT, S >::State = S

◆ Token

template<typename MT , typename S >
using Ikarus::Broadcaster< MT, S >::Token = std::shared_ptr<Callback>

Member Function Documentation

◆ notify()

template<typename MT , typename S >
void Ikarus::Broadcaster< MT, S >::notify ( MT  message,
const State data 
)
inline

◆ registerListener()

template<typename MT , typename S >
Token Ikarus::Broadcaster< MT, S >::registerListener ( Callback  callback)
inline

The function that is passed in is first stored in a shared_ptr. After this, the shared_ptr is added to the vector of listener functions, which leads to a implicit conversion to a weak_ptr. The shared_ptr is then returned to the Listener that has called this function to be stored in a vector of shared_ptr<void> listener.hh.

Parameters
callbackthe callback function
Returns
Token
Here is the caller graph for this function:

◆ unregisterListener()

template<typename MT , typename S >
void Ikarus::Broadcaster< MT, S >::unregisterListener ( Token  token)
inline

The documentation for this class was generated from the following file: