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.