mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-13 08:41:16 +00:00
- Extend the multipart API to allow sending vectors of messages or helper thin wrapper FairMQParts. See example in examples/MQ/8-multipart. - NewMessage() can be used in devices instead of fTransportFactory->CreateMessage(). Possible arguments remain unchanged (no args, size or data+size). - Send()/Receive() methods can be used in devices instead of fChannels.at("chan").at(i).Send()/Receive(): Send(msg, "chan", i = 0), Receive(msg, "chan", i = 0). - Use the new methods in MQ examples and tests. - No breaking changes, but FAIRMQ_INTERFACE_VERSION is incremented to 3 to allow to check for new methods. |
||
---|---|---|
.. | ||
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 |
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
.