mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-13 16:46:47 +00:00
- OnData() channel data handler. - ConditionalRun() for devices without incoming data. - Header file with common main(), to be extended with getDevice/addCustomOptions. - Update examples (MQ/Tutorial3) to use the new API and config. - NewSimpleMessage() for simpler creation of small messages (additional copy). - Replace SetProperty/GetProperty with fConfig access. - Runtime configurable channel names for common devices. - Configurable logging interval per channel. - FairMQMultiplier for distributing same data to multiple outputs. - Cleanup state machine messages. - Cmd option to toggle signal handling. - Simpler API for send/receive timeouts. - Enable --log-to-file. - Fix coverity issues, warnings. - Various code cleanup and minor tweaks. |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
ex6-multiple-channels.json | ||
FairMQExample6Broadcaster.cxx | ||
FairMQExample6Broadcaster.h | ||
FairMQExample6Sampler.cxx | ||
FairMQExample6Sampler.h | ||
FairMQExample6Sink.cxx | ||
FairMQExample6Sink.h | ||
README.md | ||
runExample6Broadcaster.cxx | ||
runExample6Sampler.cxx | ||
runExample6Sink.cxx | ||
startMQEx6.sh.in |
Example 6: Multiple Channels
This example demonstrates how to work with multiple channels and multiplex between them.
A topology of three devices - Sampler, Sink and Broadcaster. The Sampler sends data to the Sink via the PUSH-PULL pattern. The Broadcaster device sends a message to both Sampler and Sink containing a string "OK" every second. The Broadcaster sends the message via PUB pattern. Both Sampler and Sink, besides doing their PUSH-PULL job, listen via SUB to the Broadcaster.
The multiplexing between their data channels and the broadcast channels happens with FairMQPoller
.