SASGIS - SAS.Планета
View Issue Details
0003023SAS.ПланетаРефакторингpublic03-05-2016 10:1505-05-2016 16:46
zed 
zed 
normalminorhave not tried
resolvedfixed 
151111 
160606160606 
0003023: Оптимизировать процесс запуска закачки из сохранённой сессии (*.sls)
Сейчас есть две нехорошие вещи, которые нужно исправить:

1. Код записи и чтения файла сессии живёт в двух различных модулях. Чтение производится в u_ProviderTilesDownload, а запись в u_RegionProcessProgressInfoDownload. Нужно код из первого модуля перенести во второй и добавить там метод LoadState, по аналогии с существующим SaveState.

2. В методе рабочего потока закачки TThreadDownloadTiles.SkipTiles производится лишняя итерация при старте, до точки сохранения из sls. Сейчас эта итерация необходима только для того, чтобы в прогресс записать количество обработанных в прошлой сессии тайлов. И это странно, поскольку в sls мы сохраняем это число (в поле Processed), но никак не читаем и не инициализируем прогресс. Иногда такая итерация может занимать сильно много времени, поэтому нужно брать это значение из sls, а итератор руками устанавливать в нужную позицию.
No tags attached.
Issue History
03-05-2016 10:15zedNew Issue
03-05-2016 10:15zedStatusnew => assigned
03-05-2016 10:15zedAssigned To => zed
03-05-2016 14:03zedNote Added: 0017192
05-05-2016 16:44zedNote Added: 0017194
05-05-2016 16:46zedNote Added: 0017195
05-05-2016 16:46zedStatusassigned => resolved
05-05-2016 16:46zedFixed in Version => 160606
05-05-2016 16:46zedResolutionopen => fixed

Notes
(0017192)
zed   
03-05-2016 14:03   
Первый пункт сделал. Правда, решил для сессии завести отдельный интерфейс и уже там сохранять/загружать всё необходимое.
(0017194)
zed   
05-05-2016 16:44   
Оптимизировал. Но в sls пришлось добавить один новый параметр "ProcessedFromLastSuccessfulPoint" в котором сохраняется число тайлов на которое отстаёт последняя удачная позиция (последний удачно загруженный тайл) от текущей и используется для "отмотки" счётчика текущей позиции при старте из sls.

Соответственно, если в новой версии SAS открыть старый sls без этого параметра, то счётчик не отмотается и может показаться, что по завершению загрузки обработано более 100% тайлов. Влияет только на отображение статистики в гуе.
(0017195)
zed   
05-05-2016 16:46   
Да, это актуально, только если в настройках, на вкладке Интернет, стоит галка "Начать сохранённую сессию загрузки с последнего удачно загруженного тайла".