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

Класс SystemUpdate

(Sailfish::Mdm::SystemUpdate)

Класс SystemUpdate предоставляет высокоуровневый API для управления обновлениями ОС. Подробнее…

Подключение: #include <mdm-systemupdate.h>

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

  • enum Error { NoError, IOError, NetworkError, MetadataError, ..., UnknownError }
  • enum Method

Свойства

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

Публичные слоты

void cancelDownload()
void cancelUpdate()
void downloadUpdate(const QString &version, Method method, const QString &vendorDataUrl = {})
void installUpdate()
void scheduleUpdate(QDateTime from, QDateTime to)

Сигналы

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

Класс 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

Сигнал уведомления:

method : const Method

Свойство содержит выбранный метод обновления системы.

Методы доступа:

  • Метод method() const

Сигнал уведомления:

progress : const int

Свойство хранит прогресс загрузки в процентах.

Методы доступа:

  • int progress() const

Сигнал уведомления:

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

Сигнал уведомления:

version : const QString

Свойство содержит номер версии доступного обновления. Пусто, если обновление не найдено.

Методы доступа:

  • QString version() const

Сигнал уведомления:

Описание функций-членов

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()

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

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