Интерфейс IConfigManagerClient предоставляет методы для управления конфигурациями программ. В прикладных программах вы можете только получать конфигурацию и проверять существование конфигурации для своей программы. Получить имя своей конфигурации вы можете из переменной окружения с помощью метода std::getenv("CONFIG_NAME").
Описание интерфейса IConfigManagerClient представлено в следующих файлах:
/opt/KasperskyOS-SDK-KISG-Platform-<version>/sysroot-*-kos/include/component/secure_platform/config_manager/config_manager_client/config_manager_client.hСодержит методы для использования на языке C++.
/opt/KasperskyOS-SDK-KISG-Platform-<version>/sysroot-*-kos/include/component/secure_platform/config_manager/config_manager_client_for_c/config_manager_client_for_c.hСодержит функции для использования на языке C.
Получение конфигурации
Для получения конфигурации на языке C++ используется метод IConfigManagerClient::GetConfig(). Метод принимает имя конфигурации и помещает в выходной параметр значение конфигурации.
config_manager_client.h (фрагмент)
class IConfigManagerClient
{
...
virtual Result GetConfig(const std::string& configName, Value& configValue) const = 0;
...
}
Для получения конфигурации на языке C используется функция ConfigManagerClientGetConfig(). Функция принимает указатель на структуру типа ConfigManagerClientForC, имя конфигурации и помещает в выходной параметр значение конфигурации.
config_manager_client_for_c.h (фрагмент)
...
Retcode ConfigManagerClientGetConfig(ConfigManagerClientForC* client, const char* configName, ConfigManagerValueForC** configValue);
...
Установка конфигурации
В результате применения измененной конфигурации происходит слияние двух конфигураций – текущей и измененной.
Для установки конфигурации на языке C++ используется метод IConfigManagerClient::SetConfig(). Метод принимает имя конфигурации и значение конфигурации.
Вызов этого метода запрещен в прикладных программах. Для установки конфигурации вы можете использовать пользовательский интерфейс программы в веб-плагине управления Kaspersky IoT Secure Gateway 1000 веб-консоли Kaspersky Security Center.
config_manager_client.h (фрагмент)
class IConfigManagerClient
{
...
virtual Result SetConfig(const std::string& configName, const Value& configValue) = 0;
...
}
Для установки конфигурации на языке C используется функция ConfigManagerClientSetConfig(). Функция принимает указатель на структуру типа ConfigManagerClientForC, имя конфигурации и значение конфигурации.
config_manager_client_for_c.h (фрагмент)
...
Retcode ConfigManagerClientSetConfig(ConfigManagerClientForC* client, const char* configName, const ConfigManagerValueForC* configValue);
...
Проверка существования конфигурации
Для проверки существования конфигурации на языке C++ используется метод IConfigManagerClient::HasConfig(). Метод принимает имя конфигурации и в выходной параметр помещает значение true, если конфигурация существует, и false, если конфигурация отсутствует.
config_manager_client.h (фрагмент)
class IConfigManagerClient
{
...
virtual Result HasConfig(const std::string& configName, bool& hasConfig) const = 0;
...
}
Для проверки существования конфигурации на языке C используется функция ConfigManagerClientHasConfig(). Функция принимает указатель на структуру типа SConfigManagerClientForC, имя конфигурации и в выходной параметр помещает значение true, если конфигурация существует, и false, если конфигурация отсутствует.
config_manager_client_for_c.h (фрагмент)
...
Retcode ConfigManagerClientHasConfig(ConfigManagerClientForC* client, const char* configName, int* hasConfig);
...
В начало