- 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 | ||
ex1-sampler-sink.json | ||
FairMQExample1Sampler.cxx | ||
FairMQExample1Sampler.h | ||
FairMQExample1Sink.cxx | ||
FairMQExample1Sink.h | ||
README.md | ||
runExample1Sampler.cxx | ||
runExample1Sink.cxx | ||
startMQEx1.sh.in |
Example 1: Sampler -> Sink
A simple topology of two devices - Sampler and Sink. Sampler sends data to Sink via the PUSH-PULL pattern.
runExample1Sampler.cxx
and runExample1Sink.cxx
configure and run the devices in their main function.
The executables take two required command line parameters: --id
and --mq-config
. The value of --id
should be a unique identifier and the value for --mq-config
a path to a config file. The config file for this example is ex1-sampler-sink.json
and it contains configuration for the communication channels of the devices. The mapping between a specific device and the configuration (which can contain multiple devices) is done based on the id.
For this and the following example, all the commands needed to start the device are contained in the startFairMQExN.sh script (that can also be used for starting the example).