NiteSoft.org
 

Новости

NiteSoft RSS
04-05-2012

На сайте размещена online версия справки к NiteTest 2.0.


25-04-2012

Ключ к NiteTest 2.0 бесплатно!


09-04-2012

Добавлен пример для NiteEditor, в котором каталоги, статьи, тесты и файлы включены вместе


06-04-2012

Добавлено несколько автономных файлов с тестами.

Создание плагинов к NiteServer

Некоторые организации желают доработать программу в соответствии со своими требованиями. Чаще всего это изменение механизма входа (например, синхронизация с существующей базой данных сотрудников). Поэтому был разработан механизм расширения функционала через подключение модулей.
 
 
Рисунок 1 – Внутренняя структура программы NiteServer
 
Модули представляют собой обычную библиотеку dll, экспортирующую единственную функцию GetModule, возвращающую нетипизированный указатель. При запуске сервер тестирования NiteServer производит поиск библиотек в папке для модулей и при нахождении функции GetModule в библиотеке вызывает ее. В свою очередь при вызове этой функции модуль должен возвратить указатель на объект, реализующий интерфейс IModule. Назначение методов интерфейса IModule:
  • Install – метод вызывается единожды при первой загрузке модуля;
  • StartService – вызывается при запуске службы NiteServer;
  • StopService – вызывается при остановке службы NiteServer;
  • SetInterfaces – передача модулю ссылки на главный интерфейс для возможности взаимодействия с ядром;
  • QueryBefore – метод вызывается при запросе пользователем какой либо html страницы;
  • UserConnecting, UserConnected – вызывается при авторизации пользователя на сервере;
  • ModuleSetValue, ModuleGetValue, ModuleItem, ModuleCount – методы для межмодульного взаимодействия.
Следует учесть, что методы класса, реализующего интерфейс IModule, должны быть потокобезопасными. Для взаимодействия с ядром передается указатель на объект интерфейса IMainService, с помощью которого можно получить другие разнообразные объекты ядра:
  • Config – настройки сервера NiteServer;
  • PluginList – список подключенных модулей;
  • LanguageList – список всех доступных языков;
  • UserList – список активных пользователей;
  • PrivilegeList – список возможных прав пользователей;
  • TemplateList – список html шаблонов;
  • JavaScript – библиотека JavaScript классов.
Эти объекты являются частью ядра и не требуют создания.
 
Пример модуля для языка программирования Delphi в исходных кодах и бинарном виде. Все модули размещаются в каталоге plugin.
 
NiteSoft (c) 2005 - 2013