SObjectizer-5 Extra
SObjectizer-5 Extra Documentation

so_5_extra Version Info


Adaptation to SObjectizer v.5.8.0.

so5extra-1.6.0 can't be used with SObjectizer versions prior to v.5.8.0.

unique_subscribers mbox is now a part of SObjectizer-5.8.0. The header file so_5_extra/mboxes/unique_subscribers.hpp and the function so_5::extra::mboxes::unique_subscribers::make_mbox are kept just for compatibility reasons.


New type of mbox is introduced: so_5::extra::mboxes::inflight_limit.

New type of mbox is introduced: so_5::extra::mboxes::composite.

New type of mbox is introduced: so_5::extra::mboxes::first_last_subscriber_notification.


Switch to SObjectizer-5.7.4.

so_5::extra::mboxes::unique_subscribers now support delivery filters.

Note: so_5::extra::mboxes::round_robin doesn't support delivery filters because it seems that such support has no sense for that type of mbox.


Traits-type for asio_one_thread and asio_thread_pool dispatchers is empty now. This is a breaking change for those who use asio_one_thread and/or asio_thread_pool dispatchers with custom thread type. Since v.1.5.0 so5extra utilizes the standard SObjectizer's mechanism based on abstract_work_thread_t/abstract_work_thread_factory_t interfaces. It means that a user has to create an instance of a custom thread factory, then pass this factory to the parameters of a dispatcher (or to the parameters of the whole SObjectizer Environment).

New type of mbox is introduced: so_5::extra::mboxes::unique_subscribers.


No new features, just adaptation to SObjectizer-5.7.3. Some new features from SO-5.7.3 are used to avoid warnings about deprecations.

Attention. so_5_extra-1.4.2 can't be used with previous version of SObjectizer.

Updates for dependencies: Asio-1-21-0 and doctest-2.4.7.


New submodule so_5::extra::disp::asio_one_thread added with another Asio-base dispatcher that uses only one worker thread.


License for so5extra library changed. Since v.1.4.0 so5extra is distributed under BSD-3-CLAUSE license.

Switch to SObjectizer-5.7.0. Please note that so5extra-1.4.0 won't work with previous versions of SObjectizer.

New submodule so_5::extra::mchains::fixed_size added with several so_5::extra::mchains::fixed_size::create_mchain() functions.


New class so_5::extra::mboxes::broadcast::fixed_mbox_template_t added.


This version is not compatible with v.1.2. This version requires SObjectizer-5.6.0 or higher.

New submodule so_5::extra::sync added.


New example disp/asio_thread_pool/hello_world added.


Now so_5_extra can be used via CMake. There is a CMakeFiles.txt file in dev/so_5_extra subdirectory. To use so_5_extra write something like that in your project's CMakeFiles.txt:

find_package(so5extra CONFIG REQUIRED)
target_link_libraries(your_target PRIVATE sobjectizer::so5extra)


Since v.1.2.0 so_5_extra requires SObjectizer v.5.5.23. Older versions of SObjectizer 5.5 are not supported because of use of new SObjectizer API introduced in v.5.5.23.

Class so_5::extra::mboxes::proxy::simple_t is added. This class simplifies development of custom mboxes in cases when main mbox's work can be delegated to some existing mbox.

Namespace so_5::extra::revocable_msg added. This namespace contains several send() functions for sending revocable messages.

Namespace so_5::extra::revocable_timer added. This namespace contains various send_delayed() and send_periodic() functions for working with revocable timer messages.

Namespace so_5::extra::enveloped_msg added. This namespace contains various stuff for working with enveloped messages introduced in SObjectizer v.5.5.23. For example there is so_5::extra::enveloped_msg::time_limited_delivery_t envelope for delivery message/signal with a deadline.


Since v.1.1.0 so_5_extra requires SObjectizer v.5.5.22. Older versions of SObjectizer 5.5 are not supported because of changes in SObjectizer v.5.5.22.


Implementation of "async operation" added in form of so_5::extra::async_op::time_unlimited::make() and so_5::extra::async_op::time_limited::make() functions and related classes.

Since v.1.0.4 so_5_extra requires SO-5.5.21 as minimal SObjectizer's version.


Implementation of retained_msg mbox is added. Retained message mbox related stuff live in so_5::extra::mboxes::retained_msg namespace.


Implementation of single-thread and thread-safe environment infrastructure on top of Asio. A new namespace so_5::extra::env_infrastructures::asio::simple_mtsafe is added. New example resolve_interactive is added.


Implementation of collecting mbox is added. Collecting mbox related stuff live in so_5::extra::mboxes::collecting_mbox namespace. See the main template class so_5::extra::mboxes::collecting_mbox::mbox_template_t for more details.

Since v.1.0.1 so_5_extra required SO- as minimal SObjectizer's version.