#include <update/update.h>

Класс поддерживает скачивание xml файла обновления с нескольких источников, анализ это файла, формирование списка файлов и их скачивание, а также проверку целостности скачанных файлов.
Для уведомлений класс использует механизм notify объекта Settings.
| void checkFiles | ( | ) | [private] |
Формирование списка файлов необходимых для установки обновления.
Функция заполняет список m_files, если список будет пустым, пытаемся скачать следующий xml файл и выходим из функции.
Список файлов также записывается в настройки "Updates/Files". В конце выполняется проверка скачанных файлов checkLocalFiles().
| void checkLocalFiles | ( | ) | [private] |
Проверка локальных файлов. Наличие, размер, контрольная сумма.
Проверка запускается в отдельном потоке, результатом будет вызов слота checkLocalFilesDone(const QStringList &urls, qint64 size) Поток самостоятельно удалит себя при завершении.
| void checkLocalFilesDone | ( | const QStringList & | urls, | |
| qint64 | size | |||
| ) | [private, slot] |
Обработка завершения проверки локальных файлов.
Если состояние равно GettingUpdateXml и список файлов которые необходимо скачать не пуст, то в зависимости от члена m_downloadAll либо скачиваем файлы, либо уведомляем о наличии новой версии.
Если состояние равно GettingUpdates, то при пустом списке уведомляем о готовности к установке обновлений, иначе пытаемся скачать следующий xml файл.
| urls | Список адресов файлов, которые необходимо скачать для установки обновления (пустой список означает, что все файлы скачаны). | |
| size | Размер обновлений в байтах. |
| void checkVersion | ( | ) | [private] |
Анализ списка версий полученных из xml файла.
Функция заполняет список m_version версиями для обновления. Если список окажется пустым, то происходит уведомление об отсутствии новых версий, иначе происходит разбор файлов для обновления.
При необходимости в настройки записывается ключ "Updates/LastVersion".
| void downloadFinished | ( | ) | [private, slot] |
Уведомление об успешном скачивании очереди файлов.
Если состояние равно GettingUpdateXml, то пытаемся прочитать скачанный xml файл. В случае успеха вызываем функцию checkVersion(), иначе пытаемся скачать следующий в очереди xml файл.
Если состояние равно GettingUpdates, то запускаем проверку скачаных файлов checkLocalFiles().
| void execute | ( | ) | [slot] |
Запуск процедуры проверки обновлений.
В случае если список m_mirrors пуст, то это критическая ситуация, сообщаем об ошибке.
Иначе пытаемся скачать xml файл с информацией об новых версиях. Очищаем списки m_version и m_files, устанавливаем состояние GettingUpdateXml, получаем адрес файла из очереди m_mirrors и добавляем этот адрес в менеджер закачки.
1.5.8