Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Контентные плагины с внешним хранением информации. 
Author Message
Lev



PostPosted: Fri Jun 22, 2007 23:14    Post subject: Контентные плагины с внешним хранением информации. Reply with quote

Мое видение внутренних принципов работы контентных плагинов (или Почему не развивается ScriptContent Plugin?).

Написав несколько контентных плагинов, я составил некоторое свое представление (возможно неправильное) о необходимых принципах их работы.

Как мне представляется для ускорения работы контентных плагинов получаемая ими информация должна сохраняться во внешних файлах обновляться по необходимости и выдаваться в поля плагина по запросу, а не вычисляться каждый раз.

Место хранения полученной информации - полученная информация может храниться во временной директории системы (или поддиректории в ней), в директории плагина, в каждой из просматриваемых директорий (как description.ini). Желательно иметь возможность выбора между вариантами места хранения информации. В настройках плагина должен быть соответствующий изменяемый ключ.

Методы хранения информации - читаемый (а соответственно и редактируемый) плейн-текст (продумать разделитель полей, возможно сохранять его в ключе настроек), нечитаемые варианты удобные плагину для оптимизации размера-скорости получения и записи информации, базы данных и т.д. (при этом способе желателен внешний редактор и конвертор-экспортер в читаемый вид). При реализации нескольких вариантов метода хранения - определять их ключом в настройках.

Имя файла с информацией - желательно иметь возможность задания имени файла, и подключать нужный по ключу. В разных файлах можно хранить разные наборы выдаваемой информации.

Методы верификации - чтобы определить нужно ли обновлять информацию о файле можно сохранять вспомогательную информацию о файле (размер, дата, контрольная сумма) и при нахождении различий обновлять информацию для данного конкретного файла. Можно вообще не сохранять/не перепроверять информации, а каждый раз принудительно перезаписывать её. Т.к. скорость работы плагина будет зависеть от метода верификации, то завести ключ для выбора метода.

Получение файла с информацией можно поручить внешней программе, плагину-пакеру, скрипту и т.п. вызываемому по кнопке, по входу в директорию и т.д., тогда на долю плагина останется только чтение инфофайла и заполнение соответствующих полей, верификация при этом способе опускается (по образу работы с descript.ion)

Реализация данных принципов работы, по моему мнению, позволит забыть о моем устаревшем ScriptContent Plugin'е Smile
Естественно могут быть и плагины время получения информации которыми пренебрежимо мало и все эти ухищрения с сохранением-чтением инфы им не нужны.

-------
Попытаюсь обрисовать ТЗ на простейший плагин читалку полей, файлы будем создавать внешними методами
plugin.ini - хранится в директории плагина, наверно, для простейшей читалки можно обойтись и без него
[Options]
InfoFileName = "content.inf"

[content.inf]
Fields=10 'для данного имени инфофайла зарезервировано 10 полей
StoragePlace = 1 'храним инфофайлы в каждой из директорий
StorageMethod = 1 'храним plain text
Verification = 0 'не проверяем свежесть информации и не перезаписываем её
PlainTextSeparator = "|"

Проверка наличия инфофайла, получение из него информации для файла в директории и т.д. реализуется плагинописателем
Может быть подобный плагин уже существует, мне лень проверять его наличие, как и писать его самому.

---
Спасибо за внимание
lev
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group