Класс DaemonService

Универсальный класс, обслуживающий клиентов. Подробнее...

#include <daemonservice.h>

Граф связей класса DaemonService:

Collaboration graph

Полный список членов класса

Открытые слоты

Сигналы

Открытые члены

Закрытые слоты

Закрытые члены

Закрытые данные


Подробное описание

Универсальный класс, обслуживающий клиентов.

При наличии валидного сокета, инициализируется сокет.


Конструктор(ы)

DaemonService ( QTcpSocket *  socket,
QObject *  parent = 0 
)

Конструктор класса DaemonService.


Методы

void accessDenied ( quint16  reason = 0  ) 

[public] Клиент получил отказ в доступе, `quint16 reason` - причина отказа. Отсылаем ошибку и разрываем соединение.

void accessGranted ( quint16  numeric = 0  ) 

[public] Клиент успешно получил доступ, отсылаем уведомление об успешном доступе и устанавливаем флаг `m_accepted` в `true`.

void disconnected (  )  [private, slot]

Обработка разрыва соединения.

bool isReady (  )  const

Возвращает true если сервис находится в активном состоянии.

void message ( const QString &  channel,
const QString &  sender,
const QString &  message 
) [signal]

Уведомление о новом сообщении от пользователя.

Аргументы:
channel Канал/ник для кого предназначено сообщение (пустая строка - главный канал).
sender Ник отправителя сообщения.
message Сообщение.

void opcodeByeMsg (  )  [private]

Разбор пакета с опкодом OpcodeByeMsg.

bool opcodeGreeting (  )  [private]

[private]

void opcodeMessage (  )  [private]

Разбор пакета OpcodeMessage, полученного от клиента.

В случае успеха высылается сигнал message(const QString &channel, const QString &sender, const QString &message).

void opcodeNewProfile (  )  [private]

Разбор пакета с опкодом OpcodeNewProfile.

void opcodeNewUser (  )  [private]

[private]

void opcodePong (  )  [private]

[private] Разбор пакета с опкодом `OpcodePong`. Функция сбрасывает счётчик `OpcodePong`.

void opcodeRelayMessage (  )  [private]

Разбор пакета с опкодом OpcodeRelayMessage.

В случае успеха высылается сигнал void relayMessage(const QString &channel, const QString &sender, const QString &message).

void opcodeSyncByeMsg (  )  [private]

Разбор пакета с опкодом OpcodeSyncByeMsg.

void opcodeUniversal (  )  [private]

Разбор универсального пакета.

void opcodeUniversalLite (  )  [private]

Разбор универсального облегчённого пакета.

void opcodeUserLeave (  )  [private]

Разбор пакета с опкодом OpcodeUserLeave.

В конце разбора высылается сигнал userLeave(const QString &, const QString &, bool).

void ping (  )  [private, slot]

Слот вызывается таймером m_ping, для проверки состояния соединения.

Если соединение успешно установлено (m_accepted == true) и счётчик отправленных пакетов m_pings не превышен, производится отправка пакета OpcodePing и увеличивается счётчик пингов, иначе m_error устанавливается в "Ping timeout" и происходит отключение.

При (m_accepted == false) при активном соединения происходит разъединение, иначе удаление сокета.

void quit ( bool  kill = false  ) 

[public]

void readyRead (  )  [private, slot]

[public slots]

bool send ( quint16  opcode,
quint8  gender,
const QString &  nick,
const QString &  newNick,
const QString &  name 
) [private]

[private] Отправка стандартного пакета: quint16 -> размер пакета quint16 -> опкод quint8 -> QString -> QString -> QString -> ОПКОДЫ: `OpcodeNewNick`.

bool send ( quint16  opcode,
quint8  flag,
const QString &  nick,
const QString &  message 
) [private]

[private] Отправка стандартного пакета: quint16 -> размер пакета quint16 -> опкод quint8 -> QString -> QString -> ОПКОДЫ: `OpcodePrivateMessage`, `OpcodeUserLeave`.

bool send ( quint16  opcode,
quint16  err 
) [private]

[private] Отправка стандартного пакета: quint16 -> размер пакета quint16 -> опкод quint16 -> ОПКОДЫ: `OpcodeAccessGranted`, `OpcodeAccessDenied`.

bool send ( quint16  opcode,
const QString &  str1,
const QString &  str2 
) [private]

[private] Отправка стандартного пакета: quint16 -> размер пакета quint16 -> опкод QString -> QString -> ОПКОДЫ: `OpcodeMessage`.

bool send ( quint16  opcode,
const QString &  msg 
) [private]

[private] Отправка стандартного пакета: quint16 -> размер пакета quint16 -> опкод QString -> ОПКОДЫ: `OpcodeServerMessage`.

bool send ( quint16  opcode  )  [private]

[private] Отправка стандартного пакета: quint16 -> размер пакета quint16 -> опкод ОПКОДЫ: `OpcodePing`.

void sendLinkLeave ( quint8  numeric,
const QString &  network,
const QString &  ip 
) [inline, slot]

Отправка пакета OpcodeLinkLeave.

Аргументы:
numeric Номер сервера подключившегося к сети.
network Название сети.
ip Адрес сервера

void sendNewLink ( quint8  numeric,
const QString &  network,
const QString &  ip 
) [inline, slot]

Отправка пакета OpcodeNewLink.

Аргументы:
numeric Номер сервера подключившегося к сети.
network Название сети.
ip Адрес сервера

void sendNewNick ( quint8  gender,
const QString &  nick,
const QString &  newNick,
const QString &  name 
) [slot]

Отправка пакета с опкодом OpcodeNewNick.

void sendNewProfile ( quint8  gender,
const QString &  nick,
const QString &  name 
) [slot]

Отправка пакета с опкодом OpcodeNewProfile.

void sendNewUser ( const QStringList &  list,
quint8  echo = 1,
quint8  numeric = 0 
) [slot]

[public slots] Формирует и отправляет пакет с опкодом `OpcodeNewUser`.

void sendNumerics ( const QList< quint8 > &  numerics  ) 

[public] Пакет `OpcodeSyncNumerics`.

void sendPrivateMessage ( quint8  flag,
const QString &  nick,
const QString &  message 
) [inline]

Отправка пакета OpcodePrivateMessage.

Аргументы:
flag Флаг эха, если 1 то это подтверждение отправки сообщения.
nick Ник, отправившего сообщение (flag = 0), ник того кому предназначается сообщение (flag = 1).
message Сообщение.

void sendRelayMessage ( const QString &  channel,
const QString &  sender,
const QString &  message 
) [slot]

[public slots]

bool sendUniversal ( quint16  sub,
const QList< quint32 > &  data1,
const QStringList &  data2 
) [slot]

Отправка универсального пакета.

Аргументы:
sub Субопкод.
data1 Список данных типа quint32
data2 Список данных типа QString

bool sendUniversalLite ( quint16  sub,
const QList< quint32 > &  data1 
) [slot]

Отправка универсального облегчённого пакета.

Аргументы:
sub Субопкод.
data1 Список данных типа quint32

void unknownOpcode (  )  [private]

[private] Функция читает пакет с неизвестным опкодом.

quint16 verifyGreeting ( quint16  version  )  [private]

[private] Верификация пакета `OpcodeGreeting`.


Документация по IMPOMEZIA Simple Chat. Последние изменения: Wed Feb 25 02:12:46 2009. Создано системой  doxygen 1.5.8
Бесплатный хостинг от EOMY.NET