RuScenery - библиотека аэродромной техники, строений, самолетов СССР-СНГ

Для разработчиков библиотеки RuScenery

На главную


Описание алгоритма программы установки и обновления библиотеки RuScenery

05 июля 2009г.


Первый запуск

После первого запуска, программа автоматически или по выбору пользователя должна найти каталог с установленным x-plane.

В программе WinUpdate пользователь сам выбирает каталог, однако программа осуществляет контроль правильности выбора по наличию в каталоге файла «X-Plane.exe».

Выбранный каталог запоминается. Обязательно нужно предусмотреть возможность ручной пользователем смены каталога x-plane.

Предполагается, что в каталоге X-plane будет находиться подкаталог «/Custom Scenery/», и уже в этом подкаталоге создаётся каталог «/ruscenery/» для размещение библиотеки, если он ещё отсутсвует. Следует учесть, что сам каталог «/ruscenery/», его подкаталоги и имена заводятся только в нижнем регистре.


Закачка и разбор команд файла текущей версии

Далее устанавливается соединение, и скачивается файл http://ruscenery.x-air.ru/ver/ruscenery.ver. Файл анализируется, и из него выделяются команды (смотри описание формата файла).

Команда «;u» указывает папку, в которой следует искать файл текущей версии при следующей закачке. Это значение сохраняется для использования при следующем подключении.

Команда «;d» указывает папку, в которой находится структура файлов обновления. Значение применяются в текущем сеансе. При отсутствии команды используется значение http://ruscenery.x-air.ru/update/

Команда «;v» указывает последнюю версию программы обновления, хранимую на сайте обновлений. В том случае, если версия программы у клиента ниже, чем последняя — пользователю после сеанса установки или обновления должно быть выводено сообщение с предложением обновить программу. При отсутствии команды сравнение версий не производится.

Команда «;t» указывает текстовую строчку, которая выводится у пользователя перед началом обновления. При отсутствии команды сообщение не выводится.

Команда «;s» указывает текстовую строчку, которая выводится у пользователя в течение всего обновления. Если программа работает в режиме командной строки, это сообщение выводится сразу после начального. При отсутствии команды сообщение не выводится.

Команда «;b» указывает текстовую строчку, которая выводится у пользователя после завершения обновления. При отсутствии команды сообщение не выводится.


Анализ списка файлов из файла текущей версии

После вывода первого сообщения и установки постоянного сообщения, начинается последовательный перебор списка описаний файлов. В описании содержится информация о пути файла отностительно каталога «/ruscenery/», его размере, дате и времени модификации. Для подробностей смотри описание формата файла.

В случае отсутствия файла у клиента — он скачивается. В случае наличия файла — сравнивается фактический размер файла с описанием, и в случае несовпадения — файл скачивается и заменяется. Сравнение файлов производится только по размеру. По мере обработки списка, в каталоге «/ruscenery/» создаются необходимые подкаталоги. Далее, независимо от того, был ли скачан файл или уже присутсвовал у пользователя, у файла устанавливается дата и время последней модификации (в разных платформах это может быть дата и время создания) в соответствии с данными из списка.

После завершения перебора списка, выводится последнее сообщение и (при необходимости) сообщение о необходимости обновления самой программы.


Дополнительная информация

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

При проектировании интерфейса следует предусмотреть возможность ручной отмены закачки, а также возможность ручной смены каталога с установленным x-plane.

Система обработки ошибок и исключений оставляется на усмотрение разработчика.


Ссылки