玉兔远程控制 0.1.0-bate11
载入中...
搜索中...
未找到
Backend.h
1// Author: Kang Lin <kl222@126.com>
2
3#pragma once
4
5#include <QObject>
6#include "Operate.h"
7
51class PLUGIN_EXPORT CBackend : public QObject
52{
53 Q_OBJECT
54public:
63 explicit CBackend(COperate *pOperate = nullptr, bool bStopSignal = true);
64 virtual ~CBackend();
65
66public:
88 virtual int Start();
96 virtual int Stop();
104 virtual int WakeUp() = 0;
105
106protected:
107 enum class OnInitReturnValue {
108 Fail = -1,
109 Success = 0,
110 UseOnProcess = Success,
111 NotUseOnProcess = 1,
112 };
113 //Q_ENUM(OnInitReturnValue)
130 [[nodiscard]] virtual OnInitReturnValue OnInit() = 0;
137 virtual int OnClean() = 0;
153 [[nodiscard]] virtual int OnProcess();
154
155protected Q_SLOTS:
169 virtual void slotTimeOut();
170
171Q_SIGNALS:
188 void sigStop();
200 void sigError(const int nError, const QString &szError = QString());
213 void sigInformation(const QString& szInfo);
229 void sigShowMessageBox(const QString& szTitle, const QString& szMessage,
230 const QMessageBox::Icon& icon = QMessageBox::Information);
231
249 void sigBlockShowMessageBox(const QString& szTitle,
250 const QString& szMessage,
251 QMessageBox::StandardButtons buttons,
252 QMessageBox::StandardButton& nRet,
253 bool &checkBox,
254 QString checkBoxContext = QString());
264 void sigBlockInputDialog(const QString& szTitle,
265 const QString& szLable,
266 const QString& szMessage,
267 QString& szText
268 );
286 void sigBlockShowWidget(const QString& className, int &nRet, void* pContext);
287
292 void sigSecurityLevel(CSecurityLevel::Levels level);
293
294private:
295 int SetConnect(COperate* pOperate);
296
299};
void sigInformation(const QString &szInfo)
从后台线程中触发在主线程中显示信息,不阻塞后台线程
virtual int Stop()
停止
virtual int WakeUp()=0
唤醒后台线程。
virtual int OnProcess()
具体操作处理
void sigStop()
需要通知用户停止时触发。仅由插件触发。 当从插件中需要停止时触发。例如:对端断开连接、重置连接或者连接出错。
virtual OnInitReturnValue OnInit()=0
初始化
virtual int OnClean()=0
清理
void sigShowMessageBox(const QString &szTitle, const QString &szMessage, const QMessageBox::Icon &icon=QMessageBox::Information)
从后台线程中触发在主线程中显示消息对话框(QMessageBox),不阻塞后台线程
virtual int Start()
开始。根据 OnInit() 返回值来决定是否开始定时器来支持非 qt 事件
void sigError(const int nError, const QString &szError=QString())
当有错误产生时触发
void sigBlockShowMessageBox(const QString &szTitle, const QString &szMessage, QMessageBox::StandardButtons buttons, QMessageBox::StandardButton &nRet, bool &checkBox, QString checkBoxContext=QString())
阻塞后台线程,并在前台线程中显示消息对话框(QMessageBox)
void sigRunning()
当插件开始成功后触发。仅由插件触发
void sigFinished()
停止成功信号。仅由插件触发
virtual void slotTimeOut()
一个非 Qt 事件处理,它调用 OnProcess(),并根据其返回值开始新的定时器。 如果是不是一个非 Qt 事件循环(就是普通的循环处理), 可以重载它,或者 OnInit() 返回值 OnInit...
void sigSecurityLevel(CSecurityLevel::Levels level)
当安全级别改变时触发
void sigBlockShowWidget(const QString &className, int &nRet, void *pContext)
阻塞后台线程,并在前台线程中显示窗口。
bool m_bStopSignal
When an error occurs, emit a COperate::sigStop() signal
void sigBlockInputDialog(const QString &szTitle, const QString &szLable, const QString &szMessage, QString &szText)
阻塞后台线程,并在前台线程中显示输入对话框 (QInputDialog)
CBackend(COperate *pOperate=nullptr, bool bStopSignal=true)
CBackend
操作接口。