SASGIS - SAS.Планета
View Issue Details
0001266SAS.Планета[All Projects] Багpublic05-04-2012 20:0517-04-2012 22:16
vasketsov 
vasketsov 
normaltweakN/A
closedwon't fix 
WindowsVistaUltimate
.Nightly 
 
0001266: Местами смешение признаков возможности скачивания и доступности на запись
Необходимо сделать возможностьскачивания без записи в кэш для типа кэша (конкретно - GeoCacher через DLL).
А как оказалось - фигушки.

Причины просты:
TTileDownloadResultSaverStuped.OnStorageStateChange
VValue := FDefConfig.UseDownload and VStorageConfig.AllowAdd and AValue
и т.п.

В общем пора окончательно разделить признак возможности скачивания и признак доступности хранилища на запись и т.п.
No tags attached.
Issue History
05-04-2012 20:05vasketsovNew Issue
05-04-2012 21:19vdemidovNote Added: 0006395
05-04-2012 23:16vasketsovNote Added: 0006396
06-04-2012 08:29vdemidovNote Added: 0006403
06-04-2012 09:09vasketsovNote Added: 0006404
06-04-2012 09:26vasketsovNote Edited: 0006404bug_revision_view_page.php?bugnote_id=6404#r3178
17-04-2012 14:52vasketsovNote Added: 0006437
17-04-2012 14:52vasketsovAssigned To => vasketsov
17-04-2012 14:52vasketsovStatusnew => assigned
17-04-2012 14:53vasketsovStatusassigned => resolved
17-04-2012 14:53vasketsovFixed in Version => 120808
17-04-2012 14:53vasketsovResolutionopen => fixed
17-04-2012 19:24vdemidovStatusresolved => closed
17-04-2012 19:24vdemidovResolutionfixed => won't fix
17-04-2012 19:24vdemidovFixed in Version120808 =>
17-04-2012 19:27vdemidovNote Added: 0006438
17-04-2012 21:11vasketsovNote Added: 0006439
17-04-2012 21:12vasketsovNote Edited: 0006439bug_revision_view_page.php?bugnote_id=6439#r3193
17-04-2012 22:16vdemidovNote Added: 0006440

Notes
(0006395)
vdemidov   
05-04-2012 21:19   
Зачем скачивать, если нельзя записать? Если нужно не сохранять на диск, просто сделай тайлохранилище, которое будет только держать в памяти пару сотен тайлов.
(0006396)
vasketsov   
05-04-2012 23:16   
Зачем говоришь? Ну например скачка - это извещение по http локального сервера о скачке. Даже если и вернётся тайл - фиг с ним, вместо сохранения в TileStorage пустышка. Важно что хранилище тайлов находится под локальным сервером, и именно туда он сам сливает скачанные тайлы, и оттуда они потом забираются в сас. Пример - GeoCacher.
А кроме того вопрос-то ведь не только "зачем", сколько в существовании всех параметров независимо друг от друга, исключая вот парочку таких совершенно непонятных мест.
(0006403)
vdemidov   
06-04-2012 08:29   
ИМХО не нужно это для 99.95% пользователей. Для большинства как раз нужно что бы, если в хранилище нельзя записать, то и ничего не скачивалось, что бы зря бан не схлопотать и трафик лишний не гонять.
(0006404)
vasketsov   
06-04-2012 09:09   
(edited on: 06-04-2012 09:26)
Хм. Вроде как оба параметра задаются в zmp (прямо - разрешение скачки, косвенно - выбор типа кэша, через него определяется возможность записи в хранилище). На всякий случай напомню, что сейчас типов хранилища без записи ровно 2 (GE и GC), кроме того запись в хранилище отключается если пустое NameInCache (что для "нефайловых" типов кэша само по себе должно умереть).

Большинство - это:
а) кто вообще не лазит в zmp, и довольствуется тем, что кто-то за него написал;
б) лазит в zmp, знает что за параметр разрешает скачку, и отдавая себе отчёт об этом, включает скачку для хранилища без записи?

Впрочем как обычно есть и обходной путь. Тут ещё хитрость в том, что полный url тайла в случае типа кэша для геокэшера знает только хранилище, и писать преобразование {xyzv} -> {полный url} в zmp как минимум негуманно, а как максимум - принципиально невозможно (потому что v - необязательный параметр, и внутри v много необязательного, а в url всё обязательно). Так что всё равно придётся как-то выкручиваться, чтобы всунуть в построитель запросов некую "верёвочку" от хранилища, за которую надо будет дёргать для получения (кусков) url-ов из dll. Судя по всему, нужен будет некий простой интерфейс, который прикрутится к хранилищу, который бы передавался в построитель запросов и "дёргался" бы ДО скрипта (а в скрипте просто тупо begin end, звать в скрипте функцию для вытаскивания url-а конечно можно, но представляется бессмысленным). Вот на него и повеситься для определения доступности качалки при запрещённом для записи хранилище. Но пока это только мысли.

(0006437)
vasketsov   
17-04-2012 14:52   
Типа сделал разделение. Вроде ничего отвалиться не должно. Признак недоступности записи в окне параметров карты пишется отдельно в том же многострочном поле.
(0006438)
vdemidov   
17-04-2012 19:27   
Вернул как был. Если тайлы не могут быть сохранены то 99% пользователей качать их не нужно. Если вам нужны запросы на тайлы без сохранения их на диск, делайте отдельный тип тайлохранилища, который будет кэшировать в память определнное количество тайлов.
(0006439)
vasketsov   
17-04-2012 21:11   
(edited on: 17-04-2012 21:12)
>Если тайлы не могут быть сохранены то 99% пользователей качать их не нужно
Напоминаю, мы говорим сейчас только о кэшах GE и GC. К остальным это НЕПРИМЕНИМО. И 99% пользователей не лазят в zmp. Так что аргументы как бы надо было придумать более логичные.

>делайте отдельный тип тайлохранилища
Чего? Имеешь в виду тупо удалить дебильный Abort из процы сохранения тайлов в хранилище? Да запросто.

(0006440)
vdemidov   
17-04-2012 22:16   
Именно. А изменения действуют на все подряд. Не стоит решать проблемы одного конкретного юзкейса при помощи глобального изменения поведения. Для большинства пользователей, если качаемое нельзя сохранить - значит не нужно качать.
>Чего? Имеешь в виду тупо удалить дебильный Abort из процы сохранения тайлов в хранилище? Да запросто.
Именно.