OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 19 Апрель, 2024 18:01

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Реализации базовых модулей
СообщениеДобавлено: Пятница, 26 Май, 2006 03:38 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Вопрос возник на примере модуля Files, но скорее всего это относится и к другим базовым модулям Блэкбокса.

Итак. Допустим, я создал реализацию Files для прозрачной работы с zip-архивами. Т.е. на архив можно получить Files.Locator, и на каталоги внутри архива тоже, ну понятно в общем. Но встаёт проблема - как совместить мою реализацию и с HostFiles, и с HostPackedFiles? И если я потом создам аналогичный модуль, например, для rar-архивов, как совмещёть их все?

Иными словами: как в системе Блэкбокса совмещать несколько различных реализаций одного и того же базового модуля?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 26 Май, 2006 11:23 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Ну, при инсталляции очередного драйвера он запоминает предыдущую директорию и потом перенаправляет при необходимости вызов на нее. Образуется такая цепочка обработчиков.

Есть проблема касательно того, что какие-то клиенты могут использовать приведение Locator(HostFiles.Locator). Но, во-первых, разработчики должны были понимать,что используют низкоуровневые средства. Во-вторых, открытие типа реализации, как это сделано в HostFiles - редкий и не очень правильный случай, и в других местах Framework'а я его не видел. Во-третьих, я бы просто наследовал свой локатор от HostFiles.Locator, поскольку локатор никакой системной функциональности в себе не несет, это просто дескриптор, обертка для строки пути. loc.This() на несуществующую директории вполне допустим. Проверка и обработка пути все равно выполняется в процедурах директории, при передаче такого локатора.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 26 Май, 2006 11:34 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Илья Ермаков писал(а):
Ну, при инсталляции очередного драйвера он запоминает предыдущую директорию и потом перенаправляет при необходимости вызов на нее. Образуется такая цепочка обработчиков.


И нельзя выгрузить какой-либо промежуточный модуль из цепочки (вернее выгрузить то можно, но это приведёт к краху). Хотя признаюсь, про то, что можно запомнить предыдущую директорию я как-то не подумал :?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 26 Май, 2006 12:00 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Да, пока что идея директорий - очень неплохая идея. Но с ростом среды она потребует доработки. Потребуется некий общий диспетчер, иначе при большом количестве расширений жертвуем безопасностью.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB