5#include <QCoreApplication>
6#include <QLoggingCategory>
8#include "RabbitCommonTools.h"
10static Q_LOGGING_CATEGORY(log,
"Channel")
12QSharedPointer<QTranslator> g_Translator =
nullptr;
23 qDebug(log) <<
"CChannel::CChannel";
29 qDebug(log) <<
"CChannel::~CChannel";
32qint64 CChannel::readData(
char *data, qint64 maxlen)
36 if(
nullptr == data || 0 > maxlen) {
37 qCritical(log) << Q_FUNC_INFO <<
"The parameters is invalid" << maxlen;
41 qDebug(log) << Q_FUNC_INFO <<
"maxlen:" << maxlen;
44 if(!m_pSocket)
return nRet;
45 nRet = m_pSocket->read(data, maxlen);
47 setErrorString(m_pSocket->errorString());
53qint64 CChannel::writeData(
const char *data, qint64 len)
56 if(
nullptr == data || 0 > len) {
57 qCritical(log) << Q_FUNC_INFO <<
"The parameters is invalid" << len;
62 qDebug(log) << Q_FUNC_INFO <<
"len:" << len;
67 if(!m_pSocket)
return nRet;
68 nRet = m_pSocket->write(data, len);
70 setErrorString(m_pSocket->errorString());
76bool CChannel::isSequential()
const
81void CChannel::slotError(QAbstractSocket::SocketError e)
85 szError = m_pSocket->errorString();
86 setErrorString(szError);
96 if(!m_pSocket)
return false;
98 check = connect(m_pSocket, SIGNAL(readyRead()),
99 this, SIGNAL(readyRead()));
101 check = connect(m_pSocket, SIGNAL(connected()),
104 check = connect(m_pSocket, SIGNAL(disconnected()),
107 check = connect(m_pSocket,
108 #
if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
109 SIGNAL(errorOccurred(QAbstractSocket::SocketError)),
111 SIGNAL(error(QAbstractSocket::SocketError)),
113 this, SLOT(slotError(QAbstractSocket::SocketError)));
115 return QIODevice::open(mode);
118void CChannel::close()
120 qDebug(log) << Q_FUNC_INFO;
121 if(!isOpen())
return;
137 g_Translator = RabbitCommon::CTools::Instance()->InstallTranslator(
138 "Channel", RabbitCommon::CTools::TranslationType::Library);
145 RabbitCommon::CTools::Instance()->RemoveTranslator(g_Translator);
static int RemoveTranslation()
Remove translation
static int InitTranslation()
Initial translation
void sigSend(quint64 counts)
Send data counts
void sigConnected()
emit when the channel is connected.
void sigReceive(quint64 counts)
Receive data counts
void sigDisconnected()
emit when the channel is disconnected
void sigError(int nErr, const QString &szErr)
emit when the channel is error
virtual bool open(OpenMode mode) override
virtual QString GetDetails()
依赖信息
CChannel(QTcpSocket *pSocket, QObject *parent=nullptr)
CChannel