This example demonstrates iceoryx2's event multiplexing mechanism in a more
complex setup. The iceoryx2 Publisher and Subscriber are integrated into
custom ExamplePublisher and ExampleSubscriber classes, which also
incorporate an additional iceoryx2 Notifier and Listener. This setup
enables automatic event emission whenever an ExamplePublisher or
ExampleSubscriber is created or dropped. Additionally, events are emitted
whenever a new Sample is sent or received.
When a struct implements SynchronousMultiplexing, it can be attached to a
WaitSet. Both ExamplePublisher and ExampleSubscriber implement this
interface by forwarding calls to their underlying Listener, which already
provides an implementation of SynchronousMultiplexing.
The WaitSet notifies the user of the origin of an event notification. The
user can then acquire the EventId from the Listener. Based on the value of
the EventId, the user can identify the specific event that occurred and take
appropriate action.
cargo run --example event_based_comm_publishercargo run --example event_based_comm_subscriberFeel free to run multiple publishers or subscribers in parallel.