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);
The channel interface class.
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()
Depend on information.
CChannel(QTcpSocket *pSocket, QObject *parent=nullptr)
CChannel.