Devel:Core

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

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

Содержание

Ядро Core-X

В данном документе описано назначение, основные функции, состав и алгоритмы работы Ядра Core-X (далее просто Ядро).

Назначение

Ядро предназначено для выполнения следующих функций:

  1. Загрузка, хранение и сохранение настроечных данных, а так же доступ к ним.
  2. Обеспечение подключения, отключения и поддержание соединения с IRC-сервером(-ами).
  3. Разбор получаемых от IRC сервера(-ов) сообщений в соответствии с протоколом (RFC 2812).
  4. Предоставление доступа к обработанным данным.
  5. Предоставление доступа для отправки данных на сервер.
  6. Предоставление сигналов для каждого типа (и подтипа) сообщения.
  7. Ведение специализированных данных для каждого типа сообщения.
  8. Обеспечение перекодировки данных полученных от сервера и передаваемых на сервер.
  9. Ведение пользователей и предоставление доступа к данным пользователей.
  10. Ведение данных каналов, ников и др. данных.
  11. Управление динамически загружаемыми модулями (плагинами).


Состав ядра

Ядро представляет собой динамическую библиотеку. Она включает в себя нескольких классов и один основного класса, обеспечивающего создание связей между этими классами.

В состав ядра входят следующие классы:

  1. CoreIni - класс для работы с конфигурационными файлами;
  2. CoreError - класс для хранения и обработки ошибок;
  3. CoreConnect - класс для подключения к серверу;
  4. CoreProtocol - класс для разбора IRC-протокола;
  5. CoreData - класс для ведения специализированных данных;
  6. CorePlugin - класс для управления плагинами;
  7. CoreBase - класс ведения данных каналов, пользователей и др.


Назначение Классов

Назначение CoreIni

Класс CoreIni предназначен для работы с конфигурационными файлами.

Более подробное описание класса CoreIni тут:

Назначение CoreError

Класс CoreError предназначен для хранения и обработки ошибок.

Более подробное описание класса CoreError тут:

Назначение CoreConnect

Класс CoreConnect предназначен для подключения к серверу и поддержания подключения.

Более подробное описание класса CoreConnect тут:

Назначение CoreProtocol

Класс CoreProtocol предназначен для разбора IRC-протокола.

Более подробное описание класса CoreProtocol тут:

Назначение CoreData

Класс CoreData предназначен для ведения специализированных данных.

Более подробное описание класса CoreData тут:

Назначение CorePlugin

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

Более подробное описание класса CorePlugin тут:

Назначение CoreBase

Класс CoreBase предназначен для ведения данных каналов, пользователей и др.

Более подробное описание класса CoreBase тут:

Конфигурационные файлы

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

Файл core.ini

Файл core.ini содержит настройки по умолчанию.

Структура файла:

[default]
anick=Core[X]
codepage=utf8
ident=core-x
nick=Core-X
port=6667
realname=Core-X Bot
rectime=60
timeout=200

где:

  • anick - альтернативный ник;
  • codepage - кодировка сервера;
  • ident - идент;
  • nick - основной ник;
  • port - порт подключения по умолчанию;
  • realname - реальное имя;
  • rectime - интервал между переподключениями (в секундах);
  • timeout - максимальное время ожидания данных от сервера.

Файл connect.ini

Файл connect.ini содержит сетевые настройки подключения.

Структура файла:

[network_name]
anick=Core[X]
autoconnect=1
codepage=utf8
ident=core-x
nick=Core-X
port=6667
realname=Core-X Bot
rectime=60
servers=server1,server2,server3
timeout=200

где:

  • [network_name] - имя (идентификатор) сети;
  • anick - альтернативный ник;
  • autoconnect - настройка автоматического подключения к данной сети;
  • codepage - кодировка сервера;
  • ident - идент;
  • nick - основной ник;
  • port - порт подключения по умолчанию;
  • realname - реальное имя;
  • rectime - интервал между переподключениями (в секундах);
  • servers - перечень имен (идентификаторов) серверов из данной сети (см. файл servers.ini);
  • timeout - максимальное время ожидания данных от сервера.

Примечание: Если какие то параметры отсутствуют, то берутся параметры по умолчанию из файла core.ini.

Файл servers.ini

Файл servers.ini содержит настройки подключения для каждого сервера.

Структура файла:

[server1]
anick=Core[X]
autoconnect=1
codepage=utf8
host=irc.server
ident=core-x
nick=Core-X
password=123456
port=6667
realname=Core-X Bot
timeout=200
rectime=60

[server2]
...

где:

  • [server1], [server2] - имена (идентификаторы) серверов из connect.ini
  • anick - альтернативный ник;
  • autoconnect - настройка автоматического подключения к данной сети;
  • codepage - кодировка сервера;
  • host - адрес сервера;
  • ident - идент;
  • nick - основной ник;
  • password - пароль сервера;
  • port - порт подключения по умолчанию;
  • realname - реальное имя;
  • rectime - интервал между переподключениями (в секундах);
  • timeout - максимальное время ожидания данных от сервера.


Примечание: Если какие то параметры отсутствуют, то параметры берутся из настроек сети из файла connect.ini. А в случае если и там нет, то из файла core.ini.

Файл perform.ini

Файл perform.ini содержит перечень команд, выполняемых при подключении к сети.

Структура файла:

[network1]
n1=команда1
n2=команда2

[network1:server1]
n1=команда1
n2=команда2
n3=команда3

[network2]
...

где:

  • [network1] - имя (идентификатор) сети;
  • [network1:server1] - имя (идентификатор) сети:имя (идентификатор) сервера;
  • n1, n2, n3, ... - нумерованный список команд, выполняемых при подключении к сети.

Примечание: Если список команд для сервера пуст, то выполняются команды для сети, в которую входит данный сервер.

Алгоритм работы

Источник — «http://core-x.net/Devel:Core»
Разработка