Класс SystemUpdate
(Sailfish::Mdm::SystemUpdate)
Класс SystemUpdate предоставляет высокоуровневый API для управления обновлениями ОС. Подробнее…
Подключение: | #include <mdm-systemupdate.h> |
Публичные типы
Свойства
- lastChecked : const QDateTime
- method : const Method
- progress : const int
- ready : const bool
- scheduled : const bool
- size : const qlonglong
- version : const QString
Публичные функции
- SystemUpdate(QObject *parent = nullptr)
- QDateTime lastChecked() const
- Метод method() const
- int progress() const
- bool ready() const
- bool scheduled() const
- qlonglong size() const
- QString version() const
Публичные слоты
void | cancelDownload() |
void | cancelUpdate() |
void | downloadUpdate(const QString &version, Method method, const QString &vendorDataUrl = {}) |
void | installUpdate() |
void | scheduleUpdate(QDateTime from, QDateTime to) |
Сигналы
- void error(Error error, const QString &details)
- void lastCheckedChanged()
- void methodChanged()
- void progressChanged()
- void readyChanged()
- void scheduledChanged()
- void sizeChanged()
- void versionChanged()
Подробное описание
Класс SystemUpdate предоставляет высокоуровневый API для управления обновлениями ОС.
Доступное обновление ОС может быть подготовлено для установки с помощью SystemUpdate::download(), а затем запланировано для установки в нужное время с помощью SystemUpdate::scheduleUpdate(). Также обновление ОС может быть установлено без отсрочки с помощью SystemUpdate::installUpdate().
Для использования данного класса в qmake-настройки проекта клиента следует добавить следующее:
CONFIG += link_pkgconfig
PKGCONFIG += sailfishmdm
и затем #include <mdm-systemupdate.h>
.
Пример использования:
#include <mdm-systemupdate.h>
void scheduleUpdate(const QString &version,
Sailfish::Mdm::SystemUpdate::Method method,
const QString &vendorDataUrl,
QDateTime from, QDateTime to)
{
auto updates = new Sailfish::Mdm::SystemUpdate(this);
updates.download(version, method, vendorDataUrl);
QObject::connect(updates, &Sailfish::Mdm::SystemUpdate::readyChanged,
= {
if (updates->ready())
scheduleUpdate(from, to);
});
QObject::connect(updates, &Sailfish::Mdm::SystemUpdate::scheduledChanged,
= {
if (updates->scheduled())
qInfo() << "Обновление системы успешно запланировано";
})
QObject::connect(updates, &Sailfish::Mdm::SystemUpdate::error,
[](Sailfish::Mdm::SystemUpdate::Error error, const QString &details) {
qWarning() << "OS update error:" << error << details;
});
}
Описание типов-членов
enum SystemUpdate::Error
Типы ошибок.
Константа | Значение | Описание |
---|---|---|
Sailfish::Mdm::SystemUpdate::NoError |
0 |
Нет ошибки. |
Sailfish::Mdm::SystemUpdate::IOError |
1 |
Ошибка файловой системы. |
Sailfish::Mdm::SystemUpdate::NetworkError |
2 |
Любая сетевая ошибка, кроме аутентификации. |
Sailfish::Mdm::SystemUpdate::MetadataError |
3 |
Неверные метаданные. |
Sailfish::Mdm::SystemUpdate::PackageError |
4 |
Ошибка обновления пакета. |
Sailfish::Mdm::SystemUpdate::DBusError |
5 |
Не удалось установить связь с некоторыми службами D-Bus. Критическая ошибка. |
Sailfish::Mdm::SystemUpdate::SsuError |
6 |
Ошибка протокола SSU. |
Sailfish::Mdm::SystemUpdate::NotSupportedError |
7 |
Выбранный метод обновления не поддерживается. |
Sailfish::Mdm::SystemUpdate::InternalError |
8 |
Внутренняя ошибка в диспетчере обновлений системы. |
Sailfish::Mdm::SystemUpdate::BusyError |
9 |
Диспетчер обновлений системы занят другой операцией. |
Sailfish::Mdm::SystemUpdate::AuthenticationError |
10 |
Не удалось аутентифицироваться на сервере обновлений. |
Sailfish::Mdm::SystemUpdate::LowBattery |
11 |
Заряд батареи слишком низкий для обновления ОС. |
Sailfish::Mdm::SystemUpdate::LowDisk |
12 |
Недостаточно места на диске для обновления ОС. |
Sailfish::Mdm::SystemUpdate::NotAvailable |
100 |
Выбранная версия ОС недоступна для обновления. |
Sailfish::Mdm::SystemUpdate::ScheduleError |
101 |
Не удалось запланировать обновление ОС. Неверный период времени или пропущенный период времени. |
Sailfish::Mdm::SystemUpdate::UnknownError |
-1 |
Не должно происходить. |
enum SystemUpdate::Method
Какой метод следует использовать для обновления ОС.
Константа | Значение | Описание |
---|---|---|
Sailfish::Mdm::SystemUpdate::Any |
0 |
Любой доступный метод. |
Sailfish::Mdm::SystemUpdate::PackageUpdate |
1 |
Стандартное обновление с использованием пакетов rpm. |
Sailfish::Mdm::SystemUpdate::ResetUpdate |
2 |
Обновление с помощью сброса к заводским настройкам с потерей всех пользовательских данных. |
Описание свойств
lastChecked : const QDateTime
Свойство содержит дату и время последней назначенной проверки обновлений системы.
Методы доступа:
- QDateTime lastChecked() const
Сигнал уведомления:
- void progressChanged()
method : const Method
Свойство содержит выбранный метод обновления системы.
Методы доступа:
- Метод method() const
Сигнал уведомления:
- void progressChanged()
progress : const int
Свойство хранит прогресс загрузки в процентах.
Методы доступа:
- int progress() const
Сигнал уведомления:
- void progressChanged()
ready : const bool
Истинно, если обновление готово к установке, т. е. SystemUpdate::installUpdate() или SystemUpdate::scheduleUpdate() могут быть вызваны, если для этого свойства установлено значение true.
Методы доступа:
- bool ready() const
Сигнал уведомления:
- void readyChanged()
scheduled : const bool
Истинно, если обновление успешно запланировано для установки.
Методы доступа:
- bool scheduled() const
Сигнал уведомления:
- void scheduledChanged()
size : const qlonglong
Свойство содержит общий размер доступного обновления. Представляет необходимое дисковое пространство в разделе /home и приблизительный загружаемый размер.
Методы доступа:
- qlonglong size() const
Сигнал уведомления:
- void progressChanged()
version : const QString
Свойство содержит номер версии доступного обновления. Пусто, если обновление не найдено.
Методы доступа:
- QString version() const
Сигнал уведомления:
- void progressChanged()
Описание функций-членов
SystemUpdate::SystemUpdate(QObject *parent = nullptr)
Создаёт новый экземпляр SystemUpdate с заданным родителем parent.
[slot] void SystemUpdate::cancelDownload()
Отменяет текущую загрузку.
[slot] void SystemUpdate::cancelUpdate()
Отменяет запланированное обновление. Не влияет на уже установленное обновление.
Устанавливает значение scheduled как false.
[slot] void SystemUpdate::downloadUpdate(const QString &version, Method method, const QString &vendorDataUrl = {})
Загружает указанное обновление. Также можно указать vendorDataUrl, чтобы также загрузить образ данных поставщика.
Устанавливает значение ready как true в случае успеха.
[signal] void SystemUpdate::error(Error error, const QString &details)
Испускается при ошибке в любых операциях. error определяет код ошибки, а details содержит дополнительную нелокализованную информацию, не предназначенную для показа пользователю.
[slot] void SystemUpdate::installUpdate()
Немедленно устанавливает загруженное обновление. По окончании этой операции устройство будет перезагружено.
[signal] void SystemUpdate::lastCheckedChanged()
[signal] void SystemUpdate::methodChanged()
[slot] void SystemUpdate::scheduleUpdate(QDateTime from, QDateTime to)
Планирует загруженное обновление для установки в указанный временной интервал. Если временной интервал слишком узкий (менее получаса), его можно пропустить, в этом случае будет выдаваться ошибка.
Устанавливает значение scheduled как true в случае успеха.
[signal] void SystemUpdate::sizeChanged()
[signal] void SystemUpdate::versionChanged()