1#include "PluginClientThread.h"
3#include <QLoggingCategory>
5static Q_LOGGING_CATEGORY(log,
"Client.Plugin.Thread")
8 : CPluginClient(parent),
15 bool check = connect(m_pThread, SIGNAL(finished()),
16 m_pThread, SLOT(deleteLater()));
22CPluginClientThread::~CPluginClientThread()
24 qDebug(log) <<
"CPluginClientThread::~CPluginClientThread";
30CConnecter *CPluginClientThread::CreateConnecter(
31 const QString &szProtocol, CParameterClient *para)
33 qDebug(log) <<
"CPluginClientThread::CreateConnecter()" << szProtocol;
34 CConnecter* p = CPluginClient::CreateConnecter(szProtocol, para);
35 if(!p)
return nullptr;
36 CConnecterConnect* pConnecter = qobject_cast<CConnecterConnect*>(p);
38 QString szMsg =
"Must be derived from CConnecterConnect*, Current is ";
39 szMsg += p->metaObject()->className();
40 szMsg +=
";\nThe super class:\n";
41 auto super = p->metaObject()->superClass();
44 szMsg += QString(2 * n++,
' ') +
"- ";
45 szMsg += super->className();
46 super = super->superClass();
48 qCritical(log) << szMsg;
53 if(
nullptr == m_pThread)
55 qDebug(log) <<
"The thread is nullptr";
59 bool check = connect(pConnecter, SIGNAL(sigOpenConnect(CConnecterConnect*)),
60 m_pThread, SIGNAL(sigConnect(CConnecterConnect*)));
62 check = connect(pConnecter, SIGNAL(sigCloseconnect(CConnecterConnect*)),
63 m_pThread, SIGNAL(sigDisconnect(CConnecterConnect*)));
It starts a background thread by default.
One thread handles multiple CConnecterConnect.