Интерфейс IConfigChangeSubscription
23 января 2025
ID 233404
Методы управления отслеживанием изменений конфигурации не предназначены для применения в прикладных программ. Вместо этого, воспользуйтесь функциями из библиотеки message_stub.
Интерфейс IConfigChangeSubscription предоставляет методы для управления отслеживанием изменений конфигурации программы.
Описание интерфейса IConfigChangeSubscription представлено в следующих файлах:
/opt/KasperskyOS-SDK-KISG-Platform-<version>/sysroot-*-kos/include/component/secure_platform/config_manager/config_manager/config_change_subscription.hСодержит методы для использования на языке C++.
/opt/KasperskyOS-SDK-KISG-Platform-<version>/sysroot-*-kos/include/component/secure_platform/config_manager/config_change_subscription_api_for_c/config_change_subscription_for_c.hСодержит функцию для использования на языке C.
Для получения экземпляра интерфейса IConfigChangeSubscription на языке C++ используются следующие функции:
config_manager::CreateStaticConfigChangeSubscriptionProxy()Предоставляет экземпляр интерфейса для работы со статическим отслеживанием изменений конфигурации. Содержится в файле
/opt/KasperskyOS-SDK-KISG-Platform-<version>/sysroot-*-kos/include/component/secure_platform/config_manager/config_change_subscription_api/config_change_subscription_proxy_factory.h.config_manager::CreateDynamicConfigChangeSubscriptionProxy()Предоставляет экземпляр интерфейса для работы с динамическим отслеживанием изменений конфигурации. Содержится в файле
/opt/KasperskyOS-SDK-KISG-Platform-<version>/sysroot-*-kos/include/component/secure_platform/config_manager/config_change_subscription_dynamic_api/config_change_subscription_dynamic_proxy_factory.h.
Подписка на события изменение конфигурации
Для отслеживания изменений конфигурации на языке C++ используются методы IConfigChangeSubscription::Subscribe() и IConfigChangeSubscription::DynamicSubscribe(). Метод IConfigChangeSubscription::Subscribe() принимает структуру типа ChangeSubscriber, описывающую подписчика и имя конфигурации. Структура ChangeSubscriber состоит из имени сервиса-подписчика и имени интерфейса. Метод IConfigChangeSubscription::DynamicSubscribe() предназначен для динамического отслеживания изменений конфигурации и принимает имя интерфейса для подписки и имя конфигурации.
config_change_subscription.h (фрагмент)
class IConfigChangeSubscription
{
...
virtual Result Subscribe(const ChangeSubscriber& subscriber, const std::string& name) = 0;
virtual Result DynamicSubscribe(const ChangeSubscriber& subscriber, const std::string& name) = 0;
...
}
Для отслеживания изменений конфигурации на языке C используется функция ConfigChangeSubscribeForC(). Функция принимает имя сервиса-подписчика, имя интерфейса подписчика и имя конфигурации.
config_change_subscription_for_c.h (фрагмент)
...
Retcode ConfigChangeSubscribeForC(const char* entityName, const char* interfaceName, const char* configName);
...
Отписка от событий изменения конфигурации
Для прекращения отслеживания изменений конфигурации на языке C++ используются методы IConfigChangeSubscription::Unsubscribe() и IConfigChangeSubscription::DynamicUnsubscribe(). Метод IConfigChangeSubscription::Unsubscribe() принимает указатель на структуру типа ChangeSubscriber, описывающую подписчика. Метод IConfigChangeSubscription::DynamicUnsubscribe() предназначен для прекращения динамического отслеживания изменений конфигурации и принимает указатель на структуру типа ChangeSubscriber, описывающую подписчика.
config_change_subscription.h (фрагмент)
class IConfigChangeSubscription
{
...
virtual Result Unsubscribe(const ChangeSubscriber& subscriber) = 0;
virtual Result DynamicUnsubscribe(const ChangeSubscriber& subscriber) = 0;
...
}
Функциональность прекращения отслеживания изменений конфигурации на языке C не реализована.