HandyCache форум

Главная категория => Новые предложения => Тема начата: Дем от 22 января 2007, 10:00:58



Название: Плагинная архитектура HandyCache
Отправлено: Дем от 22 января 2007, 10:00:58
В связи с тем, что в соседних темах поступил ряд предложений, явно несовместимых с текушей логикой работы НС и требующих радикальной переработки его кода - предлагаю данную задачу (написание кода) возложить на этих "желающих странного" :)
Для чего разработать интерфейс, через который к НС могут быть подключены сторонние плагины.



! Реализовано в HC с версии 1.0 RC2 (1.0.0.175) от 27.05.2009 на основе расширений на языке скриптов Lua !


Название: Re: Плагинная архитектура HandyCache
Отправлено: DenZzz от 22 января 2007, 10:25:46
Насколько я знаю, mai62 уже давно разрабатывает API, пригодный для плагинной архитектуры. За образец взята плагинная система Миранды.

Работа эта очень трудоемкая! Но зато в будущем каждый желающий сможет проявить себя в создании плагинов для HC !


Название: Re: Плагинная архитектура HandyCache
Отправлено: Дем от 22 января 2007, 10:26:58
Первый вариант:

1) Плагин обработки запроса. Вызывается перед любыми другими действиями.
int request(string[in,out] request, string[in,out] filename, string[in] parameters)

получает:
request - запрос к серверу (полностью)
filename - имя файла на диске (до внутренней конвертации символов)
parameters - предназанченное для параметров поле из списка вызова ("как есть")

возвращает:
запрос к серверу (возможно изменённый)
имя файла на диске (возможно изменённое)
статус-код, определяющий дальнейшие действия:
а) загрузка из инета
б) загрузка из кеша
в) блокировка
г) дальнейшая обработка в соответствии со списками НС

2) плагин обработки ответа
Тоже получает весь ответ и обрабатывает его в соответствии с желаниями пользователя.

Второй вариант:
Один тип плагинов с предоставлением ему callback-функции загрузки файла из инета и кеша
т.е. плагин получил запрос, сам с помощью callbackа или ещё как хочет загрузил данные и вернул их в программу.


Название: Re: Плагинная архитектура HandyCache
Отправлено: mai62 от 26 января 2007, 00:14:08
Пунктирно будет так:
обработчики событий
- поступил запрос (управление доступом, фильтры)
- поступил ответ (управление скачиванием, фильтры)
- поступила очередная порция данных (распаковка gzip, фильтры контента)
сервисы
- ведение и предъявление статистики
- ведение лога
- дозвон
- чистка кэша
- кэш DNS
- внешние прокси
- тренажер


Название: Re: Плагинная архитектура HandyCache
Отправлено: Михаил от 07 августа 2007, 12:02:53
Имхо, хорошо бы предоставить возможность управления чтением/записью в кэш. Тогда вопрос хранения и использования метаданных, по которому согласия нет, мог бы стронуться с мертвой точки.
mai62
На каком этапе эта работа сейчас?


Название: Re: Плагинная архитектура HandyCache
Отправлено: mai62 от 07 августа 2007, 13:16:38
Сейчас все несколько сложнее. Будет отдельно серверная и управляющая часть. Серверная часть будет многоплатформенной, ее я уже пишу на C++. Многоплатформенность усложняет построение плагинной системы, я пока плохо представляю как это делают в Линуксе. С управляющей частью пока для меня больше вопросов чем ответов. Web-интерфейс решил бы проблему многоплатформенности, но будет ли такое решение достаточно эффективным? С другой стороны есть немало библиотек для создания многоплатформенных GUI-программ, но все они не без недостатков и я пока не не остановился ни на одной из них. Надо искать время чтобы познакомиться с ними поближе.


Название: Re: Плагинная архитектура HandyCache
Отправлено: cepera_ang от 07 августа 2007, 15:06:32
Веб-интерфейс это отличное решение для многоплатформенности (для виндовс в основном  :D, линуксоиды и текстовые конфиги поправят).


Название: Re: Плагинная архитектура HandyCache
Отправлено: Михаил от 07 августа 2007, 17:48:49
mai62
Выноси проблемные вопросы на форум. Обсудим. Самому сложно все учесть. И время сэкономить, может, удастся.


Название: Re: Плагинная архитектура HandyCache
Отправлено: Rick от 12 августа 2007, 07:33:33
Веб-интерфейс это отличное решение для многоплатформенности.
Работать-то будет, но будет ли веб-интерфейс достаточным? Я лично, рассматриваю его как инструмент для администратора, позволяющий с удаленной машины что-то изменить в настройках. Не больше. Т.е. веб-интерфейс - средство/способ конфигурирования НС, но не более: никаких рюшечек, никакого монитора в нынешнем виде, никакого тренажера и т.д. и т.п. Разве этого будет достаточно, тем более домашнему пользователю?


Название: Re: Плагинная архитектура HandyCache
Отправлено: NothingAnother от 12 августа 2007, 09:39:02
Разве этого будет достаточно
Нафиг Web, есть такая фишка - ServiceController обзывается...


Название: Re: Плагинная архитектура HandyCache
Отправлено: cepera_ang от 12 августа 2007, 14:39:14
Единственное что в web интерфейсе будет тяжко реализовать - монитор. Решайте в общем.
ПыСы что такое servicecontroller?


Название: Re: Плагинная архитектура HandyCache
Отправлено: Rick от 12 августа 2007, 18:53:51
Нафиг Web, есть такая фишка - ServiceController обзывается...
А на линухе такая фишка есть?

Единственное что в web интерфейсе будет тяжко реализовать - монитор. Решайте в общем.
Веб-интерфейс будет обязательно. Но он не отменяет необходимости делать управляющую программу.