- Split INITIALIZING state into Init+Bind+Connect
- Remove PAUSE state
- Convert state/transitions to enum classes (CamelCase)
- Transition to a state only once previous handler is complete
- Add CompleteInit transition to notify Initializing state
that config updates are complete
- Deprecate WaitForEndOfState(transition) in favor of
WaitForState(state)/WaitForNextState()
- Update tests/plugins to new APIs
- Deprecate CheckCurrentState() in favor of NewStatePending()
- These will be caught by StateMachine::ProcessWork
and lead to error state.
- Solve issue where device goes into ready state if
it encounters misconfigured channel in the Run.
- deprecate WaitForInitialValidation().
the patch seems big but most of it is just propagating the new notion of
constness of the factory - since it keeps track of created messages with
the internal allocator it no longer is const
! THIS PATCH BREAKS NANOMSG TRANSPORT !
The subscriber command socket was created using the transport factory of
the channel which might not implement sub sockets. This patch creates
the subscriber command sockets in the device initialization and passes
them down (move) to the command interface initialization.
This patch puts more focus on the GetSocket interface of FairMQSocket,
because all command sockets are now implemented with the default
transport - the channels use an internal poller which polls over sockets
of potentially different transports now (e.g. zeromq command socket and
nanomsg data socket). Basically, all transports need to return file
descriptors compatible to be used in a single poll set. THIS IS NOT THE CASE!
! THIS PATCH BREAKS NANOMSG TRANSPORT !
- Remove singular key names from JSON schema.
- Align the property tree created by `FairMQSuboptParser` with the format required by the main parser (plural names).
- Fix `--print-options` to print all options (not only those that have their value set).
- remove XML parser (outdated and unused).
- various code cleanup.
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/
This correction to the previous commit leaves the <sstream> header in, because
std::stringstream has been using already before and the header was missing.