| Anonymous | Login | Signup for a new account | 04-11-25 12:46 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 | ||||||||
| 0002333 | SAS.Планета | Рефакторинг / Refactoring | public | 06-02-2014 08:23 | 30-12-2021 08:59 | ||||||||
| Reporter | zed | ||||||||||||
| Assigned To | |||||||||||||
| Priority | normal | Severity | minor | Reproducibility | have not tried | ||||||||
| Status | confirmed | Resolution | open | ||||||||||
| Platform | OS | OS Version | |||||||||||
| Product Version | 131111 | ||||||||||||
| Target Version | 26xxxx | Fixed in Version | |||||||||||
| Summary | 0002333: Добавить нотифаеры в качалку видимой области | ||||||||||||
| Description | Сейчас качалка никак не реагирует на смену версии/url и типа хранилища, а реагировать нужно (делать хард ресет и перезапускать закачку).  Нужно добавить нотифаер в TTileStorageOfMapType и расширить интерфейс до ITileStorageChangeble. Фактически, сейчас это хранилище изменяемое, а не простое ITileStorage, но оно никого не уведомляет о своих изменениях и шифруется под статический сторедж. По поводу нотифаера о смене версии и url нужно смотреть дополнительно, где их там лучше сделать.  | ||||||||||||
| Tags | No tags attached. | ||||||||||||
| Attached Files | |||||||||||||
		  Relationships	 | 
|||||||||||
  | 
|||||||||||
  		Notes	 | 
|
| 
				(0013740) vdemidov (manager) 06-02-2014 12:49  | 
	Может не стоит вывешивать ITileStorageChangeble наружу, а просто подписываться на изменения в тайлохранилище, но перезапускать загрузку только если это обновление всего тайлохранилища, а не конкретного тайла - там есть способ их различать. | 
| 
				(0013741) zed (manager) 06-02-2014 13:16  | 
	
		> а просто подписываться на изменения в тайлохранилище Ты про какой конкретно метод и где?  | 
| 
				(0013742) vdemidov (manager) 06-02-2014 13:25  | 
	у тайлохранилища есть нотифаер, который уведомляет о всех изменениях в том числе и о полном обновлении. | 
| 
				(0013743) zed (manager) 06-02-2014 13:45  | 
	Ты про INotifierTilePyramidUpdate? По крайней мере других нотифаеров там нету. И на что там подписываться, чтобы словить момент переключения типа хранилища с тайлового на Беркли (к примеру)? | 
| 
				(0013744) vdemidov (manager) 06-02-2014 13:50  | 
	Да. Просто на AddListener и ловить событие с nil сообщением, а все остальные игнорировать. | 
| 
				(0013745) zed (manager) 06-02-2014 14:18  | 
	Во-первых, это очень неочевидный способ - поди-ка догадайся сходу, что нужно ловить nil у тайлового нотифаера. Т.е. это можно рассматривать как недокументированную возможность (причём, теоретическую - см. далее). А во-вторых, при смене хранилища не прилетает вообще никаких сообщений. Сообщения прилетают только при движении карты (какие-то ITileKey). | 
| 
				(0013746) zed (manager) 06-02-2014 14:25  | 
	И насколько я понял по исходникам, чтобы прилетел nil, должен дёргаться метод TileFullUpdateNotify, который никогда и никем на самом деле не дёргается. Плюс, есть косяк из-за которого может внезапно прилететь nil не там где надо. | 
| 
				(0013747) vdemidov (manager) 06-02-2014 14:25  | 
	Мда. Похоже я это только планировал сделать. Ну тогда вперед. Возможно так действительно будет лучше. | 
| 
				(0013748) zed (manager) 06-02-2014 14:30  | 
	Ок, а что по поводу версии и url (aka DefUrlBase)? | 
| 
				(0013749) vdemidov (manager) 06-02-2014 14:35  | 
	Ну там же есть конфиг. Добавь подписку на его изменения да и ладно. | 
| 
				(0013750) zed (manager) 06-02-2014 17:35  | 
	
		Подписался на изменения VersionConfig и качалка стала реагировать, а вот "отображалка" тупит. Видно как счётчик загруженных тайлов крутится и тайлы загружаются, но на экране изменения не отображаются... Кстати, по этой же подписке прилетает и изменение типа хранилища. Короче, глючит со всех сторон :(  | 
| 
				(0013751) vdemidov (manager) 06-02-2014 18:21  | 
	Пожалуйста не трогай ничего связанного с версиями,а то мне сложно мержить будет то что я уже наковырял. | 
| 
				(0013754) vdemidov (manager) 07-02-2014 06:28  | 
	
		>Видно как счётчик загруженных тайлов крутится и тайлы загружаются, но на экране изменения не отображаются... Так и должно быть. Все дело именно в INotifierTilePyramidUpdate который при смене тайлохранилища не уведомляет ничего подписчикам потому что у нового создается новый экземпляр. Я вспомнил что это не доделал. Если сделаешь ITileStorageChangeble и в нужных местах поцепишь на него листенеры то эта проблема решиться. >Кстати, по этой же подписке прилетает и изменение типа хранилища. Это временно. После переделки версий и добавления в них хэшей перестанет.  | 
| 
				(0013757) zed (manager) 08-02-2014 14:35  | 
	
		> Если сделаешь ITileStorageChangeble Как его лучше делать?  | 
| 
				(0013758) vdemidov (manager) 09-02-2014 16:55  | 
	Если б я знал как лучше... | 
| 
				(0013858) vdemidov (manager) 24-02-2014 16:13  | 
	
		В общем нужно решать, или делать прокси для INotifierTilePyramidUpdate и возвращать его из TTileStorageOfMapType. Или делать ITileStorageChangeble и при его изменении все заинтересованные должны будут переподписываться. У этого подхода есть преимущество - пропадает один захват примитива синхронизации при каждой операции с тайлохранилищем, но появляется риск, что старый экземпляр объекта-тайлохранилища будет жить пока не закончится фоновая операция, а для операций склейки/экспорта это может быть весьма долго. Второй вариант мне нравится больше, так что скорее всего программе предстоит еще одна массовая правка.  | 
| 
				(0016456) vdemidov (manager) 18-09-2015 13:58  | 
	Кстати, TTileStorageOfMapType уже довольно давно уведомляет о полном изменении тайлохранилища и можно было бы на это подписываться. И как я понимаю нужно еще за настройками генерации урлов для карты следить. | 
  Users who viewed this issue | 
				|
| User List | Anonymous (4409x), vdemidov (5x), ygorigor (1x), Papazol (1x), Garl (1x), gma (1x), zed (1x) | 
| Total Views | 4419 | 
| Last View | 04-11-2025 12:46 | 
  Issue History	 | 
|||
| Date Modified | Username | Field | Change | 
| 06-02-2014 08:23 | zed | New Issue | |
| 06-02-2014 12:49 | vdemidov | Note Added: 0013740 | |
| 06-02-2014 13:16 | zed | Note Added: 0013741 | |
| 06-02-2014 13:25 | vdemidov | Note Added: 0013742 | |
| 06-02-2014 13:45 | zed | Note Added: 0013743 | |
| 06-02-2014 13:50 | vdemidov | Note Added: 0013744 | |
| 06-02-2014 14:18 | zed | Note Added: 0013745 | |
| 06-02-2014 14:25 | zed | Note Added: 0013746 | |
| 06-02-2014 14:25 | vdemidov | Note Added: 0013747 | |
| 06-02-2014 14:30 | zed | Note Added: 0013748 | |
| 06-02-2014 14:35 | vdemidov | Note Added: 0013749 | |
| 06-02-2014 17:35 | zed | Note Added: 0013750 | |
| 06-02-2014 18:21 | vdemidov | Note Added: 0013751 | |
| 07-02-2014 06:28 | vdemidov | Note Added: 0013754 | |
| 08-02-2014 14:33 | zed | Status | new => confirmed | 
| 08-02-2014 14:33 | zed | Target Version | => 140303 | 
| 08-02-2014 14:35 | zed | Note Added: 0013757 | |
| 09-02-2014 16:55 | vdemidov | Note Added: 0013758 | |
| 17-02-2014 10:49 | vdemidov | Relationship added | child of 0001255 | 
| 24-02-2014 16:13 | vdemidov | Note Added: 0013858 | |
| 03-03-2014 08:47 | vdemidov | Target Version | 140303 => 140404 | 
| 19-03-2014 08:03 | vdemidov | Target Version | 140404 => 141111 | 
| 22-03-2014 11:15 | zed | Relationship added | related to 0002387 | 
| 26-03-2014 04:19 | Djon 1 | File Added: 100k--m53-003.gif | |
| 26-03-2014 08:21 | zed | File Deleted: 100k--m53-003.gif | |
| 23-10-2014 09:04 | vdemidov | Target Version | 141111 => 150915 | 
| 21-01-2015 10:39 | vdemidov | Target Version | 150915 => 151010 | 
| 25-01-2015 20:07 | vdemidov | Target Version | 151010 => 150915 | 
| 23-02-2015 20:27 | vdemidov | Target Version | 150915 => 151010 | 
| 18-09-2015 13:58 | vdemidov | Note Added: 0016456 | |
| 10-10-2015 15:33 | vdemidov | Target Version | 151010 => 151111 | 
| 06-11-2015 08:20 | vdemidov | Target Version | 151111 => 191221 | 
| 21-12-2019 09:14 | zed | Target Version | 191221 => 211230 | 
| 30-12-2021 08:59 | zed | Target Version | 211230 => 26xxxx | 
| 08-08-2025 13:25 | zed | Category | Рефакторинг => Рефакторинг / Refactoring | 
| My View | View Issues | Change Log | Roadmap | Search | 
| Copyright © 2007 - 2025 SAS.Planet Team |