SObjectizer-5.5.22 and so_5_extra-1.1.0

2018.04.14

SObjectizer has been updated to version 5.5.22 and so_5_extra has been updated to version 1.1.0.

The following changes/additions were introduced in SObjectizer-5.5.22:

1. An ability to filter trace messages from message_delivery_tracing. Now an user can throw out messages he/she don't want to see. It allows, for example, to trace only messages of some specific type. Or messages which were sent to a specific mbox. Or messages which were delivered to a specific agent. More details can be found in project's Wiki: [so-5.5.22 Message Delivery Tracer Filters].

A list of SObjectizer's examples has been expanded by two new examples: selective_msg_tracing and nohandler_msg_tracing. They show new message_delivery_tracing functionality.

Attention. This feature breaks compatibility with previous versions. It may be necessary to modify your source code if you are using custom mboxes (see. [so-5.5.19 Custom mbox Creation Procedure]). In particular so_5_extra-1.0.* will not work with SO-5.5.22. It is necessary to upgrade so_5_extra to version 1.1.0.

2. Free functions now can be used as message handlers in so_5::receive and so_5::select. For example:

void first_handler(const some_msg & msg) {...}
void second_handler(another_msg msg) {...}
void third_handler(so_5::mhood_t<third_msg> cmd) {...}
void forth_handler(so_5::mutable_mhood_t<third_msg> cmd) {...}
...
auto ch = so_5::create_mchain(env);
so_5::receive(ch, so_5::infinite_wait,
    first_handler,
    second_handler,
    third_handler,
    forth_handler);
					 

3. The behaviour of agent_t::so_current_state() during state switch procedure has been changed. In previous versions so_current_state() always returned a reference to old agent's state. This makes so_current_state() useless in on_enter/on_exit handlers. Now so_current_state() returns a reference to the state for that on_enter or on_exit handler is being called.

The so_5_extra project now uses asio-1.12.0 and SO-5.5.22. There is no any feature in so_5_extra-1.1.0.

The SObjectizer v.5.5.22 can be downloaded from the corresponding Files section or can be checked out from Subversion repository and from mirror on GitHub.

Source code of so_4_extra-1.1.0 can be obtained from the repository or can be downloaded from Files section.