- Avoid polling when only one input channel is used.
- Send only handles for shared memory transport.
- Avoid waiting in the rate logger thread when nothing to log.
- Hide warnings from generated files
- Fix#483
- Fix regression from last commit (preventing static run from proper shutdown).
- Guard state changes (for the internal transitions) (msm::process_event is not thread safe).
- Remove unused transition from RUNNING to EXITING.
- Convert factory methods to return smart ptrs.
- Refactor state machine to use same thread for user states.
- Remove unused includes and dependencies, use std.
Sent messages will be scheduled among the endpoints according to socket
type: PUB will send the same data to all endpoints simultaneously, PUSH
will do round robin transfer.
Incoming data is fair queued between endpoints.
This is a feature of at least zeromq and nanomsg.
_____________
To use: in the device configuration, instead of specifying just one address,
specify a comma separated list e.g.
tcp://localhost:123,ipc:///tmp/socket
the connection method (bind/connect) applies to all endpoints in this case.
______________
Mixing binding and connecting endpoints is supported:
prefix "@" means "bind", "+" (or ">") means connect, e.g.
+tcp://localhost:123,@ipc:///tmp/socket,ipc:///tmp/asd
(in case of missing prefix, the default channel method is used for that
endpoint).
- 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.
- removed the executables that are running only in DDS (ddsEx9Sampler.cxx,
ddsEx9TaskProcessor.cxx, ddsEx9FileSink.cxx, ddsParameterMQServer.cxx);
- adapted the executables to allow running within the DDS (setting channel names);
- changed the topology file to run the correct executables (ex9-dds-topology.xml);
- ex9-dds.json - changed the parameter channel name back to "data" (to be compatible with other examples);
- added a shell script to controlDDS.sh;
- added fairmq/fairmq-dds-command executable to send single commands to DDS;
- adapted parmq/parmq-server to run within DDS.
- Remove old cmd options --config-json-file and --config-xml-file.
Now handled by --mq-config with file extension detection.
- Fix --config-json-string and --config-xml-string
- Move config-key to proper place (in --help)