TinyRobotics
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
MessageBus Class Reference

A message handler that forwards messages to multiple registered handlers. More...

#include <MessageBus.h>

Inheritance diagram for MessageBus:
Inheritance graph
[legend]
Collaboration diagram for MessageBus:
Collaboration graph
[legend]

Public Member Functions

 MessageBus ()=default
 Default constructor.
 
void add (MessageHandler &stream)
 
bool onMessage (const Message< float > &msg) override
 Forward incoming messages to all registered handlers.
 
bool onMessage (const Message< Coordinate< float > > &msg) override
 Forward incoming messages to all registered handlers.
 
bool onMessage (const Message< GPSCoordinate > &msg) override
 Forward incoming messages to all registered handlers.
 
void clear ()
 Removes all registere handlers from the bus.
 
- Public Member Functions inherited from MessageHandler
virtual bool onMessage (const Message< float > &msg)=0
 Handle an incoming message (pure virtual).
 
virtual bool onMessage (const Message< Coordinate< float > > &msg)
 
virtual bool onMessage (const Message< GPSCoordinate > &msg)
 
virtual bool onMessage (const Message< MotionState3D > &msg)
 

Protected Attributes

std::vector< MessageHandler * > p_handlers
 Get the number of registered handlers.
 

Detailed Description

A message handler that forwards messages to multiple registered handlers.

The MessageBus class implements the MessageHandler interface and allows you to broadcast messages to multiple other MessageHandler instances. It is useful for publisher-subscriber or observer patterns, where a single message source needs to notify multiple listeners or output streams.

Usage:

Supported message types:

Member Function Documentation

◆ add()

void add ( MessageHandler stream)
inline

Add a MessageHandler to the bus. All messages received by the bus will be forwarded to this handler.

◆ onMessage() [1/3]

bool onMessage ( const Message< Coordinate< float > > &  msg)
inlineoverridevirtual

Forward incoming messages to all registered handlers.

Reimplemented from MessageHandler.

◆ onMessage() [2/3]

bool onMessage ( const Message< float > &  msg)
inlineoverridevirtual

Forward incoming messages to all registered handlers.

Implements MessageHandler.

◆ onMessage() [3/3]

bool onMessage ( const Message< GPSCoordinate > &  msg)
inlineoverridevirtual

Forward incoming messages to all registered handlers.

Reimplemented from MessageHandler.


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