SObjectizer — это относительно небольшой фреймворк для упрощения разработки сложных многопоточных приложений на C++. SObjectizer позволяет разработчику строить свои программы на базе асинхронного обмена сообщениями с использованием таких подходов, как Actor Model, Publish-Subscribe и CSP. Это открытый проект под лицензией BSD-3-CLAUSE. Краткое впечатление о SObjectizer можно составить на основании вот этой презентации.
Версия 5.6.0 является первым мажорным релизом новой ветки SObjectizer-5.6. Что означает также завершение развития ветки SObjectizer-5.5, которая развивалась более четырех лет.
Поскольку версия 5.6.0 открывает новую главу развития SObjectizer, то нововведений совсем нет в сравнении с тем, что было изменено и/или удалено из SObjectizer. В частности:
- используется C++17 (ранее обходились подмножеством C++11);
- проект переехал и живет теперь на BitBucket с официальным, а не экспериментальным, зеркалом на GitHub;
- у коопераций агентов нет больше строковых имен;
- из SObjectizer удалена поддержка синхронного взаимодействия между агентами (его аналог реализован в сопутствующем проекте so5extra);
- удалена поддержка агентов ad-hoc;
- для отсылки сообщений теперь используются только свободные функции send, send_delayed, send_periodic (старые методы deliver_message, schedule_timer, single_timer из публичного API изъяты);
- функции send_delayed и send_periodic теперь имеют единый формат вне зависимости от типа получателя сообщения (будь то mbox, mchain или ссылка на агента);
- добавлен класс message_holder_t для упрощения работы с преаллоцированными сообщениями;
- удалено множество вещей, которые были помечены как deprecated еще в ветке 5.5;
- ну и еще всякое разное.
Более развернутый список изменений можно найти тут. Там же, в Wiki проекта, можно найти документацию по версии 5.6.
Архивы с новой версией SObjectizer можно взять на BitBucket или на SourceForge.
PS. Специально для скептиков, которые считают, что SObjectizer никому не нужен и никем не используется. Это не так.
>>> Подробности