Devel:CoreLibs:CorePlugin

Материал из Core-X! IRC Bot Kernel, Plugin, Client!

Версия от 22:12, 13 марта 2010; Xeelor (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Содержание

Класс CorePlugin

Класс CorePlugin предназначен для управления плагинами.

Данный класс является наследником класса QObject и имеет имя "CorePlugin".

Загрузка плагина происходит по его имени. Т.е., если у вас есть файл "plugin.dll" или "libplugin.so", то обращаться к нему надо как "plugin".

Все плагины располагаются в каталоге plugins в каталоге с ядра.

Список загружаемых плагинов содержится в файле core.ini в секции [plugins].

Пример секции:

[plugins]
n1=logs
n2=stat

Слоты предоставляемые классом CorePlugin

Слоты предоставляемые классом CorePlugin:

  1. Загрузка плагина (LoadPlugin);
  2. Выгрузка плагина (UnloadPlugin);
  3. Выгрузка всех плагинов (UnloadAllPlugins);
  4. Запрос списка загруженых плагинов (PluginList);
  5. Запрос информации о плагине (PluginInfo);
  6. Добавление плагина в список автозагрузки (AddPlugin);
  7. Удаление плагина из списка автозагрузки (DelPlugin);
  8. Запрос списка плагинов в автозагрузке (AutoList).

Загрузка плагина (LoadPlugin)

Слот LoadPlugin предназначен для загрузки плагина.

Описание:

void LoadPlugin(const QString& name, int& res);
void LoadPlugin(const QString& name, bool& res);
void LoadPlugin(const QString& name);

где

  • name(входной параметр) - имя плагина;
  • res (выходной параметр) - результат загрузки плагина.

Параметр res может принимать следующие значения:

  • 0 - загрузка выполнены успешно;
  • 1 - не указано имя плагина;
  • 2 - плагин уже загружен;
  • 3 - ошибка загрузки плагина.

Выгрузка плагина (UnloadPlugin)

Слот UnloadPlugin предназначен для выгрузки плагина.

Описание:

void UnloadPlugin(const QString& name, int& res);
void UnloadPlugin(const QString& name, bool& res);
void UnloadPlugin(const QString& name);

где

  • name(входной параметр) - имя плагина;
  • res (выходной параметр) - результат выгрузки плагина.

Выгрузка всех плагинов (UnloadAllPlugins)

Слот UnloadAllPlugins предназначен для выгрузки всех плагинов.

Описание:

void UnloadAllPlugins(int& res);
void UnloadAllPlugins(bool& res);
void UnloadAllPlugins();

Запрос списка загруженых плагинов (PluginList)

Слот PluginList предназначен для запроса списка загруженных плагинов.

Описание:

void PluginList(QStringList& list);

где

  • list(выходной параметр) - список загруженных плагинов.

Запрос информации о плагине (PluginInfo)

Слот PluginInfo предназначен для запроса информации о плагине.

Описание:

void PluginInfo(const QString& name, QString& info, int& res);
void PluginInfo(const QString& name, QString& info, bool& res);
void PluginInfo(const QString& name, QString& info);

где

  • name(входной параметр) - имя плагина;
  • info (выходной параметр) - информация о плагине;
  • res (выходной параметр) - результат запроса информации о плагине.

Добавление плагина в список автозагрузки (AddPlugin)

Слот AddPlugin предназначен для добавления плагина в список автозагрузки.

Описание:

void AddPlugin(const QString& name, int& res);
void AddPlugin(const QString& name, bool& res);
void AddPlugin(const QString& name);

где

  • name(входной параметр) - имя плагина;
  • res (выходной параметр) - результат добавления плагина.

Удаление плагина из списка автозагрузки (DelPlugin)

Слот DelPlugin предназначен для удаления плагина из списока автозагрузки.

Описание:

void DelPlugin(const QString& name, int& res);
void DelPlugin(const QString& name, bool& res);
void DelPlugin(const QString& name);

где

  • name(входной параметр) - имя плагина;
  • res (выходной параметр) - результат удаления плагина.

Запрос списка плагинов в автозагрузке (AutoList)

Слот AutoList предназначен для запроса списка плагинов в автозагрузке.

Описание:

void AutoList(QStringList& list);

где

  • list(выходной параметр) - список плагинов в автозагрузке.


Сигналы предоставляемые классом CorePlugin

Сигналы предоставляемые классом CorePlugin:

  1. Сигнал загрузки плагина (PluginLoaded);
  2. Сигнал выгрузки плагина (PluginUnloaded);
  3. Сигнал загрузки всех плагинов (AllPluginsLoaded);
  4. Сигнал выгрузки всех плагинов (AllPluginsUnloaded).

Сигнал загрузки плагина (PluginLoaded)

Сигнал PluginLoaded вызывается при успешной загрузке плагина.

Описание:

void PluginLoaded(const QString& name);

где

  • name- имя загруженного плагина.

Сигнал выгрузки плагина (PluginUnloaded)

Сигнал PluginUnloaded вызывается при успешной выгрузке плагина.

Описание:

void PluginUnloaded(const QString& name);

где

  • name- имя выгруженного плагина.

Сигнал загрузки всех плагинов (AllPluginsLoaded)

Сигнал AllPluginsLoaded вызывается при успешной загрузке всех плагинов.

Описание:

void AllPluginsLoaded();

Сигнал выгрузки всех плагинов (AllPluginsUnloaded)

Сигнал AllPluginsUnloaded вызывается при успешной выгрузке всех плагинов.

Описание:

void AllPluginsUnloaded();


Взаимодействие с другими классами

Разработка