Библиотека message_stub содержит функции для запуска потоков отправки и получения сообщений, функцию для получения экземпляра интерфейса IConfigManagerClient и интерфейсы, описывающие получателя и отправителя сообщений.
IConfigManagerClient используется функция messaging::CreateConfigManagerClient(). messaging::RunIpcSender(). Функция принимает имя программы-отправителя сообщений, указатель на интерфейс IMessageSender и имя файла конфигурации.messaging::RunIpcReceiver(). Функция принимает имя программы-получателя сообщений, указатель на интерфейс IMessageReceiver и имя файла конфигурации.Описание функций messaging::CreateConfigManagerClient(), messaging::RunIpcSender() и messaging::RunIpcReceiver() представлено в файле /opt/KasperskyOS-SDK-KISG-Platform-<version>/sysroot-*-kos/include/secure_gateway/message_stub/include/message_stub/message_stub.h.
При инициализации функций messaging::RunIpcReceiver() и messaging::RunIpcSender() будет вызван callback-метод IConfigChangeClient::OnConfigChanged() интерфейса IConfigChangeClient.
message_stub.h (фрагмент)
namespace messaging {
std::unique_ptr<config_manager::IConfigManagerClient> CreateConfigManagerClient();
void RunIpcReceiver(const std::string& entityName,
std::shared_ptr<message_receiver::IMessageReceiver> receiver,
const std::string& configFileName);
void RunIpcSender(const std::string& entityName,
std::shared_ptr<message_sender::IMessageSender> sender,
const std::string& configFileName);
}
Чтобы получить доступ к API библиотеки, скомпонуйте вашу программу с библиотекой, используя CMake-команду target_link_libraries().
CMakeLists.txt
target_link_libraries(${EXECUTABLE_NAME} message_stub)
Интерфейс IMessageSender
Интерфейс IMessageSender описывает класс отправителя сообщений.
Класс IMessageSender наследует атрибуты и методы интерфейсов message_bus::ISubscriber, config_manager::IConfigChangeClient и applications::routing::IEndpointNameProvider. Реализация класса остается на стороне клиента. Вы можете посмотреть пример реализации класса IMessageSender в примере message_sender_example_package. Описание класса IMessageSender представлено в файле /opt/KasperskyOS-SDK-KISG-Platform-<version>/sysroot-*-kos/include/secure_gateway/message_stub/include/message_stub/message_sender.h.
message_sender.h (фрагмент)
namespace message_sender {
class IMessageSender
: public message_bus::ISubscriber
, public config_manager::IConfigChangeClient
, public applications::routing::IEndpointNameProvider
{
public:
virtual ~IMessageSender() = default;
};
}
Интерфейс IMessageReceiver
Интерфейс IMessageReceiver описывает класс получателя сообщений.
Класс IMessageReceiver наследует атрибуты и методы интерфейсов messaging::IMessageConsumer, config_manager::IConfigChangeClient и applications::routing::IEndpointNameProvider. Реализация класса остается на стороне клиента. Вы можете посмотреть пример реализации класса IMessageReceiver в примере message_receiver_example_package. Описание класса IMessageReceiver представлено в файле /opt/KasperskyOS-SDK-KISG-Platform-<version>/sysroot-*-kos/include/secure_gateway/message_stub/include/message_stub/message_receiver.h.
message_receiver.h (фрагмент)
namespace message_receiver {
class IMessageReceiver
: public messaging::IMessageConsumer
, public config_manager::IConfigChangeClient
, public applications::routing::IEndpointNameProvider
{
public:
virtual ~IMessageReceiver() = default;
};
}
В начало