Zephyr Project API 4.0.0
A Scalable Open Source RTOS
|
Type used to represent an observer. More...
#include <zbus.h>
Data Fields | ||
const char * | name | |
Observer name. | ||
enum zbus_observer_type | type | |
Type indication. | ||
struct zbus_observer_data * | data | |
Mutable observer data struct. | ||
union { | ||
struct k_msgq * queue | ||
Observer message queue. More... | ||
void(* callback )(const struct zbus_channel *chan) | ||
Observer callback function. More... | ||
struct k_fifo * message_fifo | ||
Observer message FIFO. More... | ||
}; | ||
Type used to represent an observer.
Every observer has an representation structure containing the relevant information. An observer is a code portion interested in some channel. The observer can be notified synchronously or asynchronously and it is called listener and subscriber respectively. The observer can be enabled or disabled during runtime by change the enabled boolean field of the structure. The listeners have a callback function that is executed by the bus with the index of the changed channel as argument when the notification is sent. The subscribers have a message queue where the bus enqueues the index of the changed channel when a notification is sent.
union { ... } zbus_observer |
void(* zbus_observer::callback) (const struct zbus_channel *chan) |
Observer callback function.
It turns the observer into a listener.
struct zbus_observer_data* zbus_observer::data |
Mutable observer data struct.
struct k_fifo* zbus_observer::message_fifo |
Observer message FIFO.
It turns the observer into a message subscriber. It only exists if the
CONFIG_ZBUS_MSG_SUBSCRIBER
is enabled.
const char* zbus_observer::name |
Observer name.
struct k_msgq* zbus_observer::queue |
Observer message queue.
It turns the observer into a subscriber.
enum zbus_observer_type zbus_observer::type |
Type indication.