玉兔远程控制 0.1.0-bate10
载入中...
搜索中...
未找到
OperateSftpServer.cpp
1// Author: Kang Lin <kl222@126.com>
2
3#include <QLoggingCategory>
4#include "Plugin.h"
5#include "BackendSftpServer.h"
6#include "ParameterSftpServer.h"
7#include "DlgSettingsSftpServer.h"
8#include "OperateSftpServer.h"
9
10static Q_LOGGING_CATEGORY(log, "Operate.SftpServer")
12 : COperateServer(plugin)
13 , m_pPara(nullptr)
14{
15 qDebug(log) << Q_FUNC_INFO;
16}
17
18COperateSftpServer::~COperateSftpServer()
19{
20 qDebug(log) << Q_FUNC_INFO;
21 QString szClass = this->metaObject()->className();
22 QString szWhat;
23 szWhat += "Please call ";
24 szWhat += szClass;
25 szWhat += "::Stop() first";
26 Q_ASSERT_X(!m_pPara, szClass.toStdString().c_str(), szWhat.toStdString().c_str());
27
28}
29
31{
32 return m_pPara;
33}
34
36{
37 QString szName;
38 // Show the name of parameter
39 if(GetParameter() && !(GetParameter()->GetName().isEmpty()))
40 szName += GetParameter()->GetName();
41 else {
42 // Show the name
43 szName += COperate::Name();
44 }
45
46 // Show the prefix of security level
47 QString szSecurityLevel;
49 if(GetParameter() && GetParameter()->GetPluginParameters()
50 && (GetParameter()->GetPluginParameters()->GetNameStyles()
51 & CParameterPlugin::NameStyle::SecurityLevel)
52 && !(GetSecurityLevel() & CSecurityLevel::Level::No)
53 && !sl.GetUnicodeIcon().isEmpty())
54 szSecurityLevel = sl.GetUnicodeIcon().left(2);
55
56 return szSecurityLevel + szName;
57}
58
60{
61 QString szDescription;
62 if(!Name().isEmpty())
63 szDescription = tr("Name: ") + Name() + "\n";
64
65 if(!GetTypeName().isEmpty())
66 szDescription += tr("Type: ") + GetTypeName() + "\n";
67
68 if(!Protocol().isEmpty()) {
69 szDescription += tr("Protocol: ") + Protocol();
70#ifdef DEBUG
71 if(!GetPlugin()->DisplayName().isEmpty())
72 szDescription += " - " + GetPlugin()->DisplayName();
73#endif
74 szDescription += "\n";
75 }
76
78 if(!(GetSecurityLevel() & CSecurityLevel::Level::No)) {
79 szDescription += tr("Security level: ");
80 if(!sl.GetUnicodeIcon().isEmpty())
81 szDescription += sl.GetUnicodeIcon() + " ";
82 szDescription += sl.GetString() + "\n";
83 }
84
85 if(!GetPlugin()->Description().isEmpty())
86 szDescription += tr("Description: ") + GetPlugin()->Description();
87
88 return szDescription;
89}
90
91const qint16 COperateSftpServer::Version() const
92{
93 return 0;
94}
95
100
102{
103 int nRet = 0;
104 if(m_pPara) {
105 m_pPara->SetPluginParameters(pPara);
106 m_pPara->m_Net.m_User.SetSavePassword(true);
107 m_pPara->m_Net.m_User.SetSavePassphrase(true);
108 }
109 return nRet;
110}
111
113{
114 return new CDlgSettingsSftpServer(m_pPara, parent);
115}
116
117int COperateSftpServer::Load(QSettings &set)
118{
119 int nRet = 0;
120 if(m_pPara)
121 nRet = m_pPara->Load(set);
122 return nRet;
123}
124
125int COperateSftpServer::Save(QSettings &set)
126{
127 int nRet = 0;
128 if(m_pPara)
129 nRet = m_pPara->Save(set);
130 return nRet;
131}
132
134{
135 int nRet = 0;
137 if(nRet) return nRet;
138
139 m_pPara = new CParameterSftpServer();
140
141 return nRet;
142}
143
145{
146 int nRet = 0;
147 if(m_pPara) {
148 delete m_pPara;
149 m_pPara = nullptr;
150 }
151 nRet = COperateServer::Clean();
152 return nRet;
153}
The CBackendSftpServer class
后端接口。它由协议插件实现。 它默认启动一个定时器来开启一个非 Qt 事件循环(就是普通的循环处理)。 详见: Start()、 slotTimeOut()、 OnProcess() 。 当然,它仍然支...
Definition Backend.h:42
服务操作接口
virtual Q_INVOKABLE int Initial() override
Initial parameters and resource
virtual Q_INVOKABLE int Clean() override
Clean parameters and resource
virtual int SetPluginParameters(CParameterPlugin *pPara) override
应用插件全局参数
virtual const QString Name() override
名称
virtual int Load(QSettings &set) override
加载参数
virtual const qint16 Version() const override
版本
virtual CParameterSftpServer * GetParameter() const
Get parameter
virtual QDialog * OnOpenDialogSettings(QWidget *parent) override
得到设置对话框
virtual int Save(QSettings &set) override
保存参数
virtual int Initial() override
Initial parameters and resource
virtual Q_INVOKABLE CBackend * InstanceBackend()
新建后端实例。它的所有者是调用者, 如果调用者不再使用它,调用者必须负责释放它。
virtual int Clean() override
Clean parameters and resource
virtual const QString Description() override
描述
virtual CSecurityLevel::Levels GetSecurityLevel() const
Get Security Level
Definition Operate.cpp:129
virtual const QString Protocol() const
协议
Definition Operate.cpp:81
Q_INVOKABLE CPlugin * GetPlugin() const
Get plugin
Definition Operate.cpp:221
virtual const QString Name()
名称
Definition Operate.cpp:46
virtual const QString GetTypeName() const
类型名
Definition Operate.cpp:86
CParameterUser m_User
[Instance user]
插件的全局参数。
void SetSavePassword(bool save)
Set save password
virtual int Save(QString szFile=QString(), bool bForce=true)
Save to file
Definition Parameter.cpp:47
virtual int Load(QString szFile=QString())
Load from file
Definition Parameter.cpp:35
插件接口
Definition Plugin.h:15
virtual const QString DisplayName() const
在界面上显示的名称
Definition Plugin.cpp:76
virtual const QString Description() const =0
描述
安全级别
Definition Stats.h:97