Callbacks are called when the data buffer of the message assiciated
with the corresponding region is no longer needed by the transport.
Example in examples/advanced/Region/
nn_term() will globally lock down the nanosmsg library. The nn_init()
interface is no longer available to reset the global state. Subsequent unit
tests after the first nn_term() call are failing.
* FairMQTransportFactoryZMQ: move the config invariant
initialization to ctor
* FairMQChannel: add new ctor that creates usable channel
* FairMQSocket*: close sockets in dtor
* FairMQTransportFactory*: terminate context in dtor
* FairMQChannel: add Bind/Connect facades (for explicit control, e.g. timing)
- give transport Initialize() method with access to device config.
- avoid using global context in the transport.
- simplify shutdown procedure (no need for extra thread).
C++ standard dictates that NULL / 0 / nullptr is a valid argument for
delete which then simply has no effect:
"The value of the first argument supplied to a deallocation function may
be a null pointer value; if so, and if the deallocation function is one
supplied in the standard library, the call has no effect."
I therefore think in these particular case it's safe to remove the ifs.
- 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
- Convert factory methods to return smart ptrs.
- Refactor state machine to use same thread for user states.
- Remove unused includes and dependencies, use std.
- 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.
- Update DDS example command UI and extract it from example.
- Unify address handling via DDS properties for dynamic deployment.
- Update DDS docs with the new approach.
- Allow `--config-key` to be used to access common config in JSON.
- Allow common channel properties to be specified for all sockets.
- Update MQ examples and Tuto3 with new config options.
- Add start scripts to MQ examples for easier use.
- Implement nanomsg multipart with MessagePack.
- Use the MessagePack from FairSoft and handle not found case.
- Update splitter, merger and proxy devices to handle multi-part.
- Let FairMQParts.At() return pointer reference (can be used for moving).
- Add missing const specifier in the message interface.
- Add transmit kernel size setting to channels (ZMQ_SNDBUF).
- Remove FairMQBuffer device.
- Remove old multi-part methods from Tutorial3 example (to be replaced with Parts API).
- Make callback mandatory for newMsg(data, size, callback).
- Add missing <vector> include in FairMQSocket.