Anonymous | Login | Signup for a new account | 21-11-24 12:37 UTC |
All Projects | SAS.Планета | Домен, сайт, форум, багтрекер | Доработка карты (ZMP) | Переводы и локализации | Прочее |
My View | View Issues | Change Log | Roadmap | Search |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0001115 | SAS.Планета | [All Projects] Баг | public | 16-01-2012 04:33 | 18-10-2012 13:03 | ||||
Reporter | Tolik | ||||||||
Assigned To | vdemidov | ||||||||
Priority | low | Severity | minor | Reproducibility | always | ||||
Status | resolved | Resolution | fixed | ||||||
Platform | OS | OS Version | |||||||
Product Version | 120808 | ||||||||
Target Version | 131111 | Fixed in Version | 131111 | ||||||
Summary | 0001115: При использовании BerkeleyDB не работает Open Primary Map Tile Folder | ||||||||
Description | А также и Open Overlay Layer Tile Folder. В ОС передаётся путь типа C:\ut\SASPlanet.Nightly\cache_db\yanarodscheme\z13\2\1\9.5.sdb\x2472\y1282.png, надо его обрезать до корректного. | ||||||||
Additional Information | Кстати, эта ссылка получена путём Copy to Clipboard -> Pathname to Tile in Cache. Разделитель между 9.5.sdb и x2472 надо сделать каким-то другим, чтобы ОС не думала, что 9.5.sdb - это директория. | ||||||||
Tags | БД | ||||||||
Attached Files | |||||||||
Notes | |
(0005000) vdemidov (manager) 16-01-2012 06:09 |
Не совсем. Нужно просто различать имя тайла и имя файла в котором тайл находится. Я об этом как-то не подумал раньше. А смысла плодить новые разделители ИМХО нет. |
(0005008) vasketsov (manager) 16-01-2012 10:40 |
>надо сделать каким-то другим Надо бы конечно. С точки зрения имён объектов в кэше саса это вторичное пространство имён, и при разборе ссылки всегда должна быть понятна точка перехода в него. В частности, в ядре WinNT вторичное пространство имён - это реестр и файловая система, ссылку на объекты во вторичном пространстве имён никогда не спутаешь на обычные ссылки на объекты (не пишу про имя объекта, потому что формально с точки зрения ядра NT файл - не именованный объект). Вот только хороший разделитель не придумать. Голосую за двойной слеш (точнее, повторение первого слеша, если он в другую сторону направлен), обработать его нахождение в строке будет проще всего, а о неустранимых недостатках говорить (без наличия драйвера режима ядра, который бы позволял входить в файлы BDB как в обычные папки) пока рано. Может конечно я чего и не догоняю, и надо делать вставку \??\, но не во всех файловых системах нельзя писать ? в именах файлов. |
(0005011) Tolik (manager) 16-01-2012 11:20 |
Всё равно эта строка не является путём к файлу, так что можно использовать любой разделитель, хоть ::, хоть |. Но можно и не менять, если это вызовет какие-то трудности. |
(0005012) vdemidov (manager) 16-01-2012 11:23 |
Я веду к тому что просто нет смысла парсить, то что мы сами формируем. А раз так то нет смысла вводить отдельные разделители. Вон в том же Total Commander после входа в архив путь в заголовке показывается "c:\Downloads\JNXLib.rar\samples\" и ничего. Лично мне нравится. Так что нужно просто что бы сам САС формировал правильный путь для открытия папки, где лежит файл в виде C:\ut\SASPlanet.Nightly\cache_db\yanarodscheme\z13\2\1\9.5.sdb А вот если его просят скопировать имя тайла в буфер, то уже можно сгенерить полный путь C:\ut\SASPlanet.Nightly\cache_db\yanarodscheme\z13\2\1\9.5.sdb\x2472\y1282.png А уж пользователь пусть разбирается что это за контейнер. Ведь можно же сделать и zip контейнеры с группировкой, например по 256 тайлов, а в них нынче даже винда заходит как в папки, не говоря уже о Total Commander и тд. |
(0005013) Tolik (manager) 16-01-2012 11:48 |
Согласен, что нет смысла парсить. Я имел в виду разделитель, визуально понятный. Читабельный. Но я не настаиваю. |
(0005016) vasketsov (manager) 16-01-2012 13:04 |
>Всё равно эта строка не является путём к файлу Проблема в том, то она МОЖЕТ быть путём к файлу. Дело в том, что вообще говоря не понятно, JNXLib.rar это файл или настоящая папка. Причём в случае саса в строке C:\ut\SASPlanet.Nightly\cache_db\yanarodscheme\z13\2\1\9.5.sdb\x2472\y1282.png всё что после "yanarodscheme" сас создаёт уже исключительно самостоятельно, без участия пользователя. То есть неискушённый юзер совершенно может быть не в курсе, папка это (допускающая дальнейший разбор) или файл (следствие вольного формирования имени), и можно легко прогнозировать дальнейшие непонятки вида "почему не открывается". А в формировании пути к тайлам хотелось бы полностью исключить возможности двоякого толкования. Вот если будет формирование перечня тайлов для скачки внешней тулзой - она уже не сможет понять автоматически тип кэша и куда что складывать, ведь нельзя заранее предполагать невозможность скачивания только одного зума (без z13) - соответственно тулза настраивается на один зум - и обламывается в создании папки 9.5.sdb. Или что ещё важно - после скачки - заведомо невозможно будет сохранить тайл на диске либо корректно обработать ошибку сохранения, имея только сам тайл и его полный путь. Если файла sdb нет, будет создана папка со всеми вытекающими. То есть конечно можно решать проблемы по мере из возникновения, но ещё проще не создавать проблемы минимальной доработкой. Да даже в ForceDirectories скормить такой путь может оказаться весьма неприятным, а автономно (без дополнительной логики обработки ".sdb", причём ТОЛЬКО для кэша беркли) его не "вычистить". |
(0005018) Garl (manager) 16-01-2012 17:01 edited on: 16-01-2012 17:02 |
я сразу предлагал юзать : как разделитель. C:\ut\SASPlanet.Nightly\cache_db\yanarodscheme\z13\2\1\9.5.sdb:x2472\y1282.png или как вариант :\ C:\ut\SASPlanet.Nightly\cache_db\yanarodscheme\z13\2\1\9.5.sdb:\x2472\y1282.png |
(0005025) vasketsov (manager) 16-01-2012 21:05 |
Двоеточие юзается в качестве разделителя для файловых потоков на NTFS. Нельзя двоеточие. |
(0005217) zed (manager) 25-01-2012 08:53 |
Так как в итоге решать эту багу? Добавить ещё один метод в хранилище, по которому отдавать имя контейнера или что? |
(0005218) Garl (manager) 25-01-2012 08:55 |
по мне: так можно и оставить как есть сейчас. |
(0005219) vdemidov (manager) 25-01-2012 09:08 |
Какие вообще в перспективе возможны тайлохранилища: 1. Папка в которой по папкам раскиданы файлы. 1 тайл в 1 файле. (То что есть уже давно) 2. Папка в которой по папкам раскиданы контейнеры. N тайлов в 1 файле. (Текущая реализация с БерклиДБ) 3. Папка в которой лежит большой контейнер. Все тайлы в 1 файле. (Например на базе SQLite) 4. База на сервере БД, сервере приложений или еще что-то. Какие еще варианты? Я больше придумать не могу. Поэтому для унификации предлагаю и в 4-м случае сделать папку, в которой хранить например файлик с параметрами подключения к базе и тд. Получается что папка всегда есть. |
(0005220) vdemidov (manager) 25-01-2012 09:11 |
Тоесть нужно сделать метод у тайлохранилища, который будет всегда отдавать максимально полный путь к месту где хранится тайл. В 1-м случае это будет сам файл с тайлом. Во 2-м и 3-м это файл контейнера. В 4-м это файл с параметрами подключения к базе. |
Issue History | |||
Date Modified | Username | Field | Change |
16-01-2012 04:33 | Tolik | New Issue | |
16-01-2012 04:37 | Tolik | Status | new => acknowledged |
16-01-2012 06:09 | vdemidov | Note Added: 0005000 | |
16-01-2012 09:49 | gpsMax | Tag Attached: БД | |
16-01-2012 10:40 | vasketsov | Note Added: 0005008 | |
16-01-2012 11:20 | Tolik | Note Added: 0005011 | |
16-01-2012 11:23 | vdemidov | Note Added: 0005012 | |
16-01-2012 11:48 | Tolik | Note Added: 0005013 | |
16-01-2012 13:04 | vasketsov | Note Added: 0005016 | |
16-01-2012 17:01 | Garl | Note Added: 0005018 | |
16-01-2012 17:02 | Garl | Note Edited: 0005018 | View Revisions |
16-01-2012 21:05 | vasketsov | Note Added: 0005025 | |
24-01-2012 14:54 | vdemidov | Status | acknowledged => confirmed |
24-01-2012 14:54 | vdemidov | Target Version | => 24xxxx |
25-01-2012 08:53 | zed | Note Added: 0005217 | |
25-01-2012 08:55 | Garl | Note Added: 0005218 | |
25-01-2012 09:08 | vdemidov | Note Added: 0005219 | |
25-01-2012 09:11 | vdemidov | Note Added: 0005220 | |
09-08-2012 06:49 | vdemidov | Product Version | .Nightly => 120808 |
18-10-2012 13:03 | vdemidov | Status | confirmed => resolved |
18-10-2012 13:03 | vdemidov | Fixed in Version | => 131111 |
18-10-2012 13:03 | vdemidov | Resolution | open => fixed |
18-10-2012 13:03 | vdemidov | Assigned To | => vdemidov |
18-10-2012 13:03 | vdemidov | Target Version | 24xxxx => 131111 |
My View | View Issues | Change Log | Roadmap | Search |
Copyright © 2007 - 2024 SAS.Planet Team |