+  HandyCache форум
|-+  Главная категория» Новые предложения» Плагинная архитектура HandyCache
Имя пользователя:
Пароль:
Страниц: [1]   Вниз
  Отправить эту тему    Печать  
Автор Тема: Плагинная архитектура HandyCache  (Прочитано 8722 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Дем
Постоялец
***

Репутация: +6/-3
Offline Offline

Сообщений: 167



« : 22 января 2007, 10:00:58 »

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



! Реализовано в HC с версии 1.0 RC2 (1.0.0.175) от 27.05.2009 на основе расширений на языке скриптов Lua !
« Последнее редактирование: 06 июля 2009, 11:34:55 от DenZzz » Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #1 : 22 января 2007, 10:25:46 »

Насколько я знаю, mai62 уже давно разрабатывает API, пригодный для плагинной архитектуры. За образец взята плагинная система Миранды.

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

Репутация: +6/-3
Offline Offline

Сообщений: 167



« Ответ #2 : 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а или ещё как хочет загрузил данные и вернул их в программу.
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #3 : 26 января 2007, 00:14:08 »

Пунктирно будет так:
обработчики событий
- поступил запрос (управление доступом, фильтры)
- поступил ответ (управление скачиванием, фильтры)
- поступила очередная порция данных (распаковка gzip, фильтры контента)
сервисы
- ведение и предъявление статистики
- ведение лога
- дозвон
- чистка кэша
- кэш DNS
- внешние прокси
- тренажер
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #4 : 07 августа 2007, 12:02:53 »

Имхо, хорошо бы предоставить возможность управления чтением/записью в кэш. Тогда вопрос хранения и использования метаданных, по которому согласия нет, мог бы стронуться с мертвой точки.
mai62
На каком этапе эта работа сейчас?
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #5 : 07 августа 2007, 13:16:38 »

Сейчас все несколько сложнее. Будет отдельно серверная и управляющая часть. Серверная часть будет многоплатформенной, ее я уже пишу на C++. Многоплатформенность усложняет построение плагинной системы, я пока плохо представляю как это делают в Линуксе. С управляющей частью пока для меня больше вопросов чем ответов. Web-интерфейс решил бы проблему многоплатформенности, но будет ли такое решение достаточно эффективным? С другой стороны есть немало библиотек для создания многоплатформенных GUI-программ, но все они не без недостатков и я пока не не остановился ни на одной из них. Надо искать время чтобы познакомиться с ними поближе.
Сообщить модератору   Записан
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #6 : 07 августа 2007, 15:06:32 »

Веб-интерфейс это отличное решение для многоплатформенности (для виндовс в основном  Веселый, линуксоиды и текстовые конфиги поправят).
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #7 : 07 августа 2007, 17:48:49 »

mai62
Выноси проблемные вопросы на форум. Обсудим. Самому сложно все учесть. И время сэкономить, может, удастся.
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #8 : 12 августа 2007, 07:33:33 »

Веб-интерфейс это отличное решение для многоплатформенности.
Работать-то будет, но будет ли веб-интерфейс достаточным? Я лично, рассматриваю его как инструмент для администратора, позволяющий с удаленной машины что-то изменить в настройках. Не больше. Т.е. веб-интерфейс - средство/способ конфигурирования НС, но не более: никаких рюшечек, никакого монитора в нынешнем виде, никакого тренажера и т.д. и т.п. Разве этого будет достаточно, тем более домашнему пользователю?
Сообщить модератору   Записан
NothingAnother
Beta tester
*****

Репутация: +7/-2
Offline Offline

Сообщений: 434

Spoiler


« Ответ #9 : 12 августа 2007, 09:39:02 »

Разве этого будет достаточно
Нафиг Web, есть такая фишка - ServiceController обзывается...
Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #10 : 12 августа 2007, 14:39:14 »

Единственное что в web интерфейсе будет тяжко реализовать - монитор. Решайте в общем.
ПыСы что такое servicecontroller?
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #11 : 12 августа 2007, 18:53:51 »

Нафиг Web, есть такая фишка - ServiceController обзывается...
А на линухе такая фишка есть?

Единственное что в web интерфейсе будет тяжко реализовать - монитор. Решайте в общем.
Веб-интерфейс будет обязательно. Но он не отменяет необходимости делать управляющую программу.
Сообщить модератору   Записан
Страниц: [1]   Вверх
  Отправить эту тему    Печать  

 
Перейти в: