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());
51qint64 CChannel::writeData(
const char *data, qint64 len)
54 if(
nullptr == data || 0 > len) {
55 qCritical(log) << Q_FUNC_INFO <<
"The parameters is invalid" << len;
60 qDebug(log) << Q_FUNC_INFO <<
"len:" << len;
65 if(!m_pSocket)
return nRet;
66 nRet = m_pSocket->write(data, len);
68 setErrorString(m_pSocket->errorString());
72bool CChannel::isSequential()
const
77void CChannel::slotError(QAbstractSocket::SocketError e)
81 szError = m_pSocket->errorString();
82 setErrorString(szError);
92 if(!m_pSocket)
return false;
94 check = connect(m_pSocket, SIGNAL(readyRead()),
95 this, SIGNAL(readyRead()));
97 check = connect(m_pSocket, SIGNAL(connected()),
100 check = connect(m_pSocket, SIGNAL(disconnected()),
103 check = connect(m_pSocket,
104 #
if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
105 SIGNAL(errorOccurred(QAbstractSocket::SocketError)),
107 SIGNAL(error(QAbstractSocket::SocketError)),
109 this, SLOT(slotError(QAbstractSocket::SocketError)));
111 return QIODevice::open(mode);
114void CChannel::close()
116 qDebug(log) << Q_FUNC_INFO;
117 if(!isOpen())
return;
133 g_Translator = RabbitCommon::CTools::Instance()->InstallTranslator(
134 "Channel", RabbitCommon::CTools::TranslationType::Library);
141 RabbitCommon::CTools::Instance()->RemoveTranslator(g_Translator);
The channel interface class.
static int RemoveTranslation()
Remove translation.
static int InitTranslation()
Initial translation.
void sigConnected()
emit when the channel is connected.
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.