Пример демонстрирует использование компонента MessageBus в KasperskyOS.
В этом примере программы Publisher, SubscriberA и SubscriberB используют компонент MessageBus для обмена сообщениями:

Пример использования компонента MessageBus в решении на базе KasperskyOS
Компонент MessageBus реализует шину сообщений, которая обеспечивает прием, распределение и доставку сообщений между программами. Использование шины сообщений в решениях на базе KasperskyOS позволяет, например, легко масштабировать рассылку сообщений для большего количества подписчиков. Шина сообщений может обрабатывать большие объемы сообщений и распределять их эффективно между получателями.
Уровень журналирования для компонента MessageBus устанавливается переменной окружения LOG_LEVEL, которая задана в файле ./einit/CMakeLists.txt. Для этой переменной допустимы следующие значения:
Программа Publisher является издателем и передает сообщения в шину:
IProviderFactory::CreateBusControl().IProviderFactory::CreateBus().IProviderControl::RegisterPublisher().IProvider::Push().IProviderControl::UnregisterPublisher().Программы SubscriberA и SubscriberB являются подписчиками и получают сообщения из шины:
IProviderFactory::CreateBusControl().IProviderFactory::CreateSubscriberRunner().IProviderControl::RegisterSubscriber().ISubscriberRunner::Run().ISubscriber::OnMessage().IProviderControl::UnregisterSubscriber().Пример также демонстрирует использование разных виртуальных файловых систем (далее VFS) в одном решении. В примере для доступа к функциям работы с файловой системой и функциям работы с сетью используются разные VFS:
VfsNet.VfsSdCardFs.Программа kl.Ntpd поставляется в составе KasperskyOS Community Edition и представляет собой реализацию ntp-клиента, который в фоновом режиме получает параметры времени от внешних ntp-серверов и передает их ядру KasperskyOS.
Программа kl.rump.Dhcpcd поставляется в составе KasperskyOS Community Edition и представляет собой реализацию DHCP-клиента, который в фоновом режиме получает параметры сетевых интерфейсов от внешнего DHCP-сервера и передает их виртуальной файловой системе.
Для сборки и запуска примера используется система CMake из состава KasperskyOS Community Edition.
Файлы примера
Код примера и скрипты для сборки находятся по следующему пути:
/opt/KasperskyOS-Community-Edition-<version>/examples/messagebus
Сборка и запуск примера
См. "Сборка и запуск примеров".
Для корректной работы примера messagebus на Raspberry Pi после сборки примера и подготовки загрузочной SD-карты требуется выполнить следующие действия:
/lib на загрузочной SD-карте, если этой директории не существует;/lib на загрузочной SD-карте содержимое директории build/hdd/lib, которая генерируется во время сборки примера.