玉兔远程控制 0.0.31
载入中...
搜索中...
未找到
Public 成员函数 | Private 成员函数 | Private 属性 | 所有成员列表
CPluginClient类 参考abstract

客户端插件接口。用于建立 CConnecter 实例,它由协议插件实现。 更多...

#include <PluginClient.h>

类 CPluginClient 继承关系图:
CPluginClientThread CPluginFreeRDP CPluginLibSSH CPluginLibVNCServer CPluginPlayer CPluginRabbitVNC CPluginScreenCapture CPluginTelnet CPluginTerminal CPluginTigerVnc CPluginWakeOnLan

Public 成员函数

 CPluginClient (QObject *parent=nullptr)
 初始化操作。例如:派生类实现它,初始化插件全局资源等,例如:
 
virtual ~CPluginClient ()
 派生类实现它,用于释放资源。例如:
 
virtual const QString Id () const
 标识。默认: Protocol() + ":" + Name()
 
virtual const QString Protocol () const =0
 协议
 
virtual const QString Name () const =0
 插件名,这个名一定要与工程名(${PROJECT_NAME})相同。 翻译文件(${PROJECT_NAME}_*.ts))名与其相关。
 
virtual const QString DisplayName () const
 在界面上显示的名称
 
virtual const QString Description () const =0
 描述
 
virtual const QString Version () const =0
 Version
 
virtual const QIcon Icon () const
 
virtual const QString Details () const
 显示更多细节。 例如: 在关于对话框或日志中显示。 包括插件的依赖库的版本信息和描述
 

Private 成员函数

virtual Q_INVOKABLE CConnecterCreateConnecter (const QString &szId)=0
 新建 CConnecter 实例。仅由 CClient 调用
 
Q_INVOKABLE int InitTranslator ()
 初始化翻译资源,仅由 CClient 调用。 因为它调用了 Name() ,所以不能在此类的构造函数中直接调用。
 

Private 属性

QSharedPointer< QTranslator > m_Translator
 

详细描述

客户端插件接口。用于建立 CConnecter 实例,它由协议插件实现。

参见
CClient CConnecterThread CConnecter CPluginClientThread

在文件 PluginClient.h32 行定义.

构造及析构函数说明

◆ CPluginClient()

CPluginClient::CPluginClient ( QObject *  parent = nullptr)
explicit

初始化操作。例如:派生类实现它,初始化插件全局资源等,例如:

: CPluginClient(parent)
{
qDebug(log) << Q_FUNC_INFO;
qInfo(log) << "FreeRDP version:" << freerdp_get_version_string()
<< "revision:" << freerdp_get_build_revision();
static wLogCallbacks* pCbLog = new wLogCallbacks;
BOOL bRet = WLog_SetLogAppenderType(WLog_GetRoot(), WLOG_APPENDER_CALLBACK);
if(bRet && pCbLog)
{
memset(pCbLog, 0, sizeof(wLogCallbacks));
pCbLog->message = [](const wLogMessage* msg)->BOOL{
switch(msg->Level)
{
case WLOG_TRACE:
break;
case WLOG_DEBUG:
qDebug(LoggerFreeRDP) /*<< msg->PrefixString */ << msg->TextString;
break;
case WLOG_INFO:
qInfo(LoggerFreeRDP) /*<< msg->PrefixString*/ << msg->TextString;
break;
case WLOG_WARN:
qWarning(LoggerFreeRDP) /*<< msg->PrefixString */<< msg->TextString;
case WLOG_ERROR:
qCritical(LoggerFreeRDP) /*<< msg->PrefixString*/ << msg->TextString;
break;
case WLOG_FATAL:
case WLOG_OFF:
qFatal(msg->FormatString, msg->TextString);
break;
default:
break;
}
return TRUE;
};
WLog_ConfigureAppender(WLog_GetLogAppender(WLog_GetRoot()), "callbacks", pCbLog);
}
WLog_SetLogLevel(WLog_GetRoot(), WLOG_TRACE);
}
客户端插件接口。用于建立 CConnecter 实例,它由协议插件实现。
CPluginFreeRDP(QObject *parent=nullptr)
[Initialize resource]

◆ ~CPluginClient()

CPluginClient::~CPluginClient ( )
virtual

派生类实现它,用于释放资源。例如:

{
qDebug(log) << Q_FUNC_INFO;
}
virtual ~CPluginFreeRDP() override
[Initialize resource]

在文件 PluginClient.cpp17 行定义.

成员函数说明

◆ CreateConnecter()

virtual Q_INVOKABLE CConnecter * CPluginClient::CreateConnecter ( const QString &  szId)
privatepure virtual

新建 CConnecter 实例。仅由 CClient 调用

{
auto it = m_Plugins.find(id);
if(m_Plugins.end() != it)
{
bool bRet = 0;
qDebug(log) << "CreateConnecter id:" << id;
auto plugin = it.value();
CConnecter* p = nullptr;
if(plugin) {
//p = plugin->CreateConnecter(id);
bRet = QMetaObject::invokeMethod(
plugin,
"CreateConnecter",
Qt::DirectConnection,
Q_RETURN_ARG(CConnecter*, p),
Q_ARG(QString, id));
if(!bRet) {
qCritical(log) << "Create CConnecter fail.";
return nullptr;
}
}
if(p) {
int val = 0;
//p->Initial();
bRet = QMetaObject::invokeMethod(
p,
"Initial",
Qt::DirectConnection,
Q_RETURN_ARG(int, val));
if(!bRet || val) {
qCritical(log) << "Connecter initial fail" << bRet << val;
DeleteConnecter(p);
return nullptr;
}
//p->SetParameterClient(m_ParameterClient)
bRet = QMetaObject::invokeMethod(
p,
"SetParameterClient",
Qt::DirectConnection,
Q_RETURN_ARG(int, val),
Q_ARG(CParameterClient*, m_pParameterClient));
if(!bRet || val) {
qCritical(log) << "SetParameterClient fail" << bRet << val;
DeleteConnecter(p);
return nullptr;
}
}
return p;
}
return nullptr;
}
virtual CConnecter * CreateConnecter(const QString &id)
新建 CConnecter 指针,所有者是调用者。 当不在使用时,调用者必调用 DeteleConnecter() 须释放指针。 调用者必须连接信号 CConnecter::sigDisconnecte...
Definition Client.cpp:202
连接者应用接口。
Definition Connecter.h:62
客户端库 (CClient) 参数。仅在客户端库 (CClient) 和插件中使用。
返回
返回 CConnecter 指针, 它的所有者是调用者。
注解
此函数新建一个堆栈对象指针, 调用者必须负责在用完后释放指针
参数
szId连接 ID
参见
CClient::CreateConnecter CClient::LoadConnecter

CPluginFreeRDP, CPluginLibVNCServer, CPluginPlayer, CPluginRabbitVNC, CPluginScreenCapture, CPluginTigerVnc, CPluginWakeOnLan, CPluginClientThread, CPluginLibSSH, CPluginTelnet , 以及 CPluginTerminal 内被实现.

◆ Description()

virtual const QString CPluginClient::Description ( ) const
pure virtual

◆ Details()

const QString CPluginClient::Details ( ) const
virtual

显示更多细节。 例如: 在关于对话框或日志中显示。 包括插件的依赖库的版本信息和描述

参见
CPluginFreeRDP::Details()

CPluginFreeRDP, CPluginLibVNCServer, CPluginPlayer, CPluginTigerVnc , 以及 CPluginWakeOnLan 重载.

在文件 PluginClient.cpp52 行定义.

◆ DisplayName()

const QString CPluginClient::DisplayName ( ) const
virtual

◆ Icon()

const QIcon CPluginClient::Icon ( ) const
virtual

在文件 PluginClient.cpp47 行定义.

◆ Id()

const QString CPluginClient::Id ( ) const
virtual

标识。默认: Protocol() + ":" + Name()

在文件 PluginClient.cpp37 行定义.

◆ InitTranslator()

int CPluginClient::InitTranslator ( )
private

初始化翻译资源,仅由 CClient 调用。 因为它调用了 Name() ,所以不能在此类的构造函数中直接调用。

在文件 PluginClient.cpp25 行定义.

◆ Name()

virtual const QString CPluginClient::Name ( ) const
pure virtual

插件名,这个名一定要与工程名(${PROJECT_NAME})相同。 翻译文件(${PROJECT_NAME}_*.ts))名与其相关。

CPluginFreeRDP, CPluginLibSSH, CPluginLibVNCServer, CPluginPlayer, CPluginRabbitVNC, CPluginScreenCapture, CPluginTelnet, CPluginTerminal, CPluginTigerVnc , 以及 CPluginWakeOnLan 内被实现.

◆ Protocol()

virtual const QString CPluginClient::Protocol ( ) const
pure virtual

◆ Version()

virtual const QString CPluginClient::Version ( ) const
pure virtual

类成员变量说明

◆ m_Translator

QSharedPointer<QTranslator> CPluginClient::m_Translator
private

在文件 PluginClient.h116 行定义.


该类的文档由以下文件生成: