CCF
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
messaging::Dispatcher< MessageType > Class Template Reference

#include <messaging.h>

Public Types

using MessageCounts = MessageCounts< MessageType >
 

Public Member Functions

 Dispatcher (char const *name)
 
void set_message_handler (MessageType m, char const *message_label, Handler h)
 
void remove_message_handler (MessageType m)
 
bool has_handler (MessageType m)
 
void dispatch (MessageType m, const uint8_t *data, size_t size)
 
MessageCounts retrieve_message_counts ()
 
nlohmann::json convert_message_counts (const MessageCounts &mc)
 

Member Typedef Documentation

◆ MessageCounts

template<typename MessageType >
using messaging::Dispatcher< MessageType >::MessageCounts = MessageCounts<MessageType>

Constructor & Destructor Documentation

◆ Dispatcher()

template<typename MessageType >
messaging::Dispatcher< MessageType >::Dispatcher ( char const *  name)
inline

Member Function Documentation

◆ convert_message_counts()

template<typename MessageType >
nlohmann::json messaging::Dispatcher< MessageType >::convert_message_counts ( const MessageCounts mc)
inline

◆ dispatch()

template<typename MessageType >
void messaging::Dispatcher< MessageType >::dispatch ( MessageType  m,
const uint8_t *  data,
size_t  size 
)
inline

Dispatch a single message

If there is a handler registered for this type, it will be called with the given message body.

Exceptions
no_handlerif no handler is registered for this type.

◆ has_handler()

template<typename MessageType >
bool messaging::Dispatcher< MessageType >::has_handler ( MessageType  m)
inline

Is handler already registered for this message type

Returns
true iff there is an active handler for type, which has not been removed.

◆ remove_message_handler()

template<typename MessageType >
void messaging::Dispatcher< MessageType >::remove_message_handler ( MessageType  m)
inline

Remove the callback for this message type

The handler will be erased and will not receive any future messages from this Dispatcher.

Exceptions
no_handlerif no handler is registered for this type.

◆ retrieve_message_counts()

template<typename MessageType >
MessageCounts messaging::Dispatcher< MessageType >::retrieve_message_counts ( )
inline

◆ set_message_handler()

template<typename MessageType >
void messaging::Dispatcher< MessageType >::set_message_handler ( MessageType  m,
char const *  message_label,
Handler  h 
)
inline

Set a callback for this message type

Each message type may have a single handler registered at a time. Every time a message with this type is encountered, the handler will receive a callback with the raw message data.

The handler will remain registered and continue to receive messages until it is explicitly removed by a call to remove_message_handler.

Exceptions
already_handledif a handler is already registered for this type.

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