Класс ConfigurationManager
Управляет конфигурацией приложения. Подробнее...
Подключение: | #include <ManagedConfiguration/configuration_manager.hpp> |
Унаследован от: | QObject |
Публичные типы
- using ChangeConfigurationCallback = std::function< void(const Error &)>
- using GetConfigurationCallback = std::function< void(const Configuration &, const Error &)>
Сигналы
- void configurationChanged (const Configuration &configuration)
Публичные функции
- void changeConfiguration(const Configuration &configuration, const ChangeConfigurationCallback &callback)
- void getConfiguration(const GetConfigurationCallback &callback)
Статические публичные функции
- static ConfigurationManager * instance()
Подробное описание
Класс управляет конфигурацией приложения.
ConfigurationManager — это синглтон, который можно использовать для получения и изменения конфигурации приложения.
Для работы с управляемой конфигурацией разработчику необходимо:
- Установить имя организации.
- Установить имя приложения.
- Создать файл параметров конфигурации и поместить его
в
/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
.