1
0
mirror of https://gitee.com/drabel/LibQQt.git synced 2025-01-04 10:18:44 +08:00
LibQQt/qqtprotocol.h
tianduanrui 3f857669fc init
2016-12-29 16:49:18 +08:00

38 lines
843 B
C++
Executable File

#ifndef QQTPROTOCOL_H
#define QQTPROTOCOL_H
#include <QObject>
#include "qqtmessage.h"
class QQTProtocol : public QObject
{
Q_OBJECT
public:
explicit QQTProtocol(QObject *parent = 0);
signals:
qint64 write(const QByteArray& l);
public:
virtual quint16 minlength() {}
/**
* @brief 最大包长
* @return
*/
virtual quint16 maxlength() {}
/**
* @brief 语法解析器 从流中解析报文长度
* @param 接收到的数据段
* @return 按照协议解析到的数据长度 可用,继续接收,丢弃,粘包。
*/
virtual quint16 splitter(const QByteArray &s){}
/**
* @brief 语义解析器
* @param 数据包
* @return 0 no dispatched(others) 1 dispatched(own)
*/
virtual bool dispatcher(const QByteArray &m){}
};
#endif // QQTPROTOCOL_H