3#include <QLoggingCategory>
6#include "DlgSettingsSSH.h"
11static Q_LOGGING_CATEGORY(log,
"Plugin.SSH.Operate")
16 qDebug(log) << Q_FUNC_INFO;
17 auto &net = m_Parameters.m_SSH.m_Net;
19 QList<CParameterUser::TYPE> lstType;
20 lstType << CParameterUser::TYPE::UserPassword
21 << CParameterUser::TYPE::PublicKey;
22 net.m_User.SetType(lstType);
23 bool check = connect(
this, SIGNAL(sigReceiveData(
const QByteArray&)),
24 this, SLOT(slotReceiveData(
const QByteArray&)));
28COperateSSH::~COperateSSH()
30 qDebug(log) << Q_FUNC_INFO;
56COperateSSH::SecurityLevel COperateSSH::GetSecurityLevel()
58 return SecurityLevel::Secure;
61void COperateSSH::slotReceiveData(
const QByteArray &data)
64 WriteTerminal(data.data(), data.length());
72 auto &sshNet = m_Parameters.m_SSH.m_Net;
73 if(!sshNet.GetHost().isEmpty())
74 szId +=
"_" + sshNet.GetHost()
75 +
"_" + QString::number(sshNet.GetPort());
79 static QRegularExpression exp(
"[-@:/#%!^&* \\.]");
80 szId = szId.replace(exp,
"_");
86 QString szName = m_Parameters.GetName();
88 if(szName.isEmpty()) {
89 auto &sshNet = m_Parameters.m_SSH.m_Net;
90 if(!sshNet.GetHost().isEmpty()) {
95 szName += sshNet.GetHost()
96 +
":" + QString::number(sshNet.GetPort());
107 QString szDescription;
108 if(!
Name().isEmpty())
109 szDescription = tr(
"Name: ") +
Name() +
"\n";
112 szDescription += tr(
"Type: ") +
GetTypeName() +
"\n";
115 szDescription += tr(
"Protocol: ") +
Protocol();
117 if(!
GetPlugin()->DisplayName().isEmpty())
120 szDescription +=
"\n";
123 auto &sshNet = m_Parameters.m_SSH.m_Net;
124 if(!sshNet.GetHost().isEmpty())
125 szDescription += tr(
"Server address: ") + sshNet.GetHost()
126 +
":" + QString::number(sshNet.GetPort()) +
"\n";
128 if(GetSecurityLevel() != SecurityLevel::No)
129 szDescription += tr(
"Security level: ") + GetSecurityLevelString() +
"\n";
134 return szDescription;
后端接口。它由协议插件实现。 它默认启动一个定时器来开启一个非 Qt 事件循环(就是普通的循环处理)。 详见: Start()、 slotTimeOut()、 OnProcess() 。 当然,它仍然支...
virtual int Clean() override
Clean parameters and resource
virtual const QString Name() override
Name
virtual int Initial() override
Initial parameters and resource
virtual CBackend * InstanceBackend() override
新建后端实例。它的所有者是调用者, 如果调用者不再使用它,调用者必须负责释放它。
virtual const QString Id() override
Identity
virtual QDialog * OnOpenDialogSettings(QWidget *parent) override
得到设置对话框
virtual const QString Description() override
Description
virtual int Initial() override
Initial parameters and resource
virtual CParameterTerminalBase * GetParameter()
Get parameters
virtual const QString Name() override
Name
virtual int SetParameter(CParameterTerminalBase *pPara)
设置参数指针
virtual const QString Protocol() const
Protocol
Q_INVOKABLE CPlugin * GetPlugin() const
Get plugin
virtual const QString Id()
Identity
virtual const QString GetTypeName() const
Get type name
CParameterPlugin * GetGlobalParameters()
Get CParameterPlugin
virtual const QString DisplayName() const
在界面上显示的名称
virtual const QString Description() const =0
描述