Документация
ОС Аврора 5.1.5

Класс ConfigurationManager

Управляет конфигурацией приложения. Подробнее...

Подключение: #include <ManagedConfiguration/configuration_manager.hpp>
Унаследован от: QObject

Публичные типы

Сигналы

  • void configurationChanged (const Configuration &configuration)

Публичные функции

Статические публичные функции

  • static ConfigurationManager * instance()

Подробное описание

Класс управляет конфигурацией приложения.

ConfigurationManager — это синглтон, который можно использовать для получения и изменения конфигурации приложения.

Для работы с управляемой конфигурацией разработчику необходимо:

  1. Установить имя организации.
  2. Установить имя приложения.
  3. Создать файл параметров конфигурации и поместить его в /usr/share/<applicationId>/managed-configuration/configuration.xml.

Пример использования:

#include <ManagedConfiguration/configuration_manager.hpp>
#include <QtQuick>
#include <auroraapp.h>
 
int main(int argc, char *argv[])
{
    using namespace Aurora::Application::ManagedConfiguration;
 
    QScopedPointer<QGuiApplication> application(Aurora::Application::application(argc, argv));
    application->setOrganizationName(QStringLiteral("ru.example"));
    application->setApplicationName(QStringLiteral("Example"));
 
    auto configurationManager = ConfigurationManager::instance();
    QObject::connect(configurationManager,
                    &ConfigurationManager::configurationChanged,
                    [configurationManager](const Configuration &c) {
        qInfo() << "New managed configuration";
    });
 
    auto callback = [](const Configuration &c, const Error &error) {
        if (error) {
            qCritical() << "Failed to get initial configuration for application" << error.message();
        } else {
            qInfo() << "Get configuration for the application!";
        }
    };
    configurationManager->getConfiguration(callback);
 
    Configuration configuration;
    configuration.set("HelloString", "Hello, Aurora OS!");
    configuration.set("AuroraMajorVersion", 5);
    configuration.set("IsAuroraCool", true);
    configurationManager->changeConfiguration(configuration, [](const Error &error) {
        if (error) {
            qWarning() << "Failed to update configuration" << error.message();
        }
    });
 
    // ...
    // ...
    // ...
 
    return application->exec();
}

Описание публичных типов

using ChangeConfigurationCallback = std::function< void(const Error &)>

Тип обратного вызова для метода changeConfiguration.

using GetConfigurationCallback = std::function< void(const Configuration &, const Error &)>

Тип обратного вызова для метода getConfiguration.

Описание сигналов

void configurationChanged (const Configuration &configuration)

Сигнал для уведомления об изменении конфигурации приложения.

Возвращает ту же конфигурацию, что и метод getConfiguration.

  • configurationUpdate — конфигурация приложения.

Описание публичных функций

void changeConfiguration (const Configuration &configuration, const ChangeConfigurationCallback &callback)

Измененяет конфигурацию.

Параметры:

  • configuration — конфигурация с изменёнными параметрами.
  • callback — функция обратного вызова при изменении конфигурации.

Примечание. Достаточно указать параметры, которые необходимо изменить. Не обязательно отправлять всю конфигурацию.

void getConfiguration (const GetConfigurationCallback &callback)

Возвращает конфигурацию.

Конфигурация содержит только заданные параметры. Если какой-либо параметр конфигурации не имеет значения по умолчанию и не был задан администратором или приложением, его не будет в конфигурации.

Параметры:

  • callback — функция обратного вызова при получении начальной конфигурации.

Примечание. Метод должен быть использован один раз при запуске приложения. Все обновления конфигурации во время работы приложения должны быть получены через сигнал configurationChanged.

Описание статических публичных функций

static ConfigurationManager * instance()

Возвращает синглтон ConfigurationManager.

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.