Стали доступны новые версии библиотек
SObjectizer и
so5extra.
Полный список изменений в SObjectizer-5.7.1 можно найти
здесь.
Из новых возможностей отдельно можно выделить лимиты для сообщений по умолчанию. Начиная с 5.7.1 если агенту нужно обрабатывать множество сообщений с одинаковыми лимитами, то описание этого лимита можно сделать лишь один раз:
class demo final : public so_5::agent_t
{
public:
demo(context_t ctx)
: so_5::agent_t{ctx
+ limit_then_drop<msg_A>(100u)
+ limit_then_abort<msg_B>(10u)
// Этот лимит будет использован для всех остальных сообщений.
+ limit_then_drop<any_unspecified_message>(50u)
}
{}
void so_define_agent() override
{
// Для сообщения msg_A будет использован явно заданный лимит.
so_subscribe_self().event([](mhood_t<msg_A> cmd) {...});
// Для сообщения msg_C лимит будет создан автоматически.
so_subscribe_self().event([](mhood_t<msg_C> cmd) {...});
}
};
В so5extra-1.4.1 добавлен новый диспетчер
asio_one_thread. Этот диспетчер предназначен для ситуаций, когда на одной рабочей нити нужно собрать сразу несколько агентов, которые выполняют IO-операции посредством Asio. И когда важно, чтобы все эти IO-операции выполнялись на одной и той же рабочей нити.