操作参数接口。仅在插件内有效。
- 注解
-
设置和得到全局参数。需要操作全局参数的参数应该从此类派生。
使用全局参数(CParameterPlugin)
为操作参数(CParameterOperate 或其派生类)设置全局参数(CParameterPlugin)
- 如果操作参数 ( CParameterOperate 或其派生类 ) 需要全局参数 (CParameterPlugin) 。
- 请在 COperate 派生类的构造函数中实例化操作参数。例如:
[Declare CParameterFreeRDP]
- 调用 COperateDesktop::SetParameter 设置参数指针。例如:
{
qDebug(log) << Q_FUNC_INFO;
int nRet = 0;
if(nRet) return nRet;
nRet = SetParameter(&m_ParameterFreeRdp);
return nRet;
}
virtual int Initial() override
Initial parameters and resource
virtual int Initial() override
[Set the parameter]
- 默认会自动为操作参数设置 CParameterPlugin 。详见: CPlugin::CreateOperate 。
{
if(p) {
int nRet = 0;
bool bRet = QMetaObject::invokeMethod(
p,
"Initial",
Qt::DirectConnection,
Q_RETURN_ARG(int, nRet));
if(!bRet) {
qCritical(log) << "Call p->Initial() fail.";
return nullptr;
}
if(nRet) {
qCritical(log) << "Operate initial fail" << nRet;
DeleteOperate(p);
return nullptr;
}
bRet = QMetaObject::invokeMethod(
p,
"SetGlobalParameters",
Qt::DirectConnection,
Q_RETURN_ARG(int, nRet),
if(!bRet) {
qCritical(log) << "Call p->SetParameterClient(para) fail.";
return nullptr;
}
if(nRet) {
qCritical(log) << "SetParameterClient fail" << nRet;
DeleteOperate(p);
return nullptr;
}
}
return p;
}
virtual Q_INVOKABLE COperate * CreateOperate(const QString &szId, CParameterPlugin *para)
新建 COperate 实例。仅由 CClient 调用
- 如果参数不需要 CParameterPlugin , 那请在 COperate 派生类重载 COperate::SetGlobalParameters 不设置它。
在操作参数 ( CParameterOperate 或其派生类 ) 中使用全局参数 (CParameterPlugin)
操作参数分类使用
因为可能会有很多参数,所以需要按参数类型分类。每个分类可以从此类派生出一个单独的类。
因为操作参数都有一些基本的参数(例如网络地址等),所以这些基本参数放入 CParameterBase 。 而每个分类做为它的成员变量。
例如:
操作参数包括以下几种类型:
- 基本参数
连接基础参数接口。包括基本参数(网络参数等)。 所有插件的连接参数都应从此类派生。
- 用户参数
用户名与验证方式。此类仅在插件内有效。它的界面是 CParameterUserUI
- 视频参数
- 音频参数
其中 CParameterBase , CParameterUser 它需要全局参数, 所以必须从 CParameterOperate 派生。 其它的类型则不需要全局参数的,从 CParameter 派生。
那么操作参数可以是以上类型的集合:
{
public:
CParameterVideo m_Video;
CParameterAudio m_Audio;
};
m_User(this, "Host"),
m_Video(this),
m_Audio(this)
{}
- 注解
-
- 参见
- CParameterOperate CParameterPlugin CManager::CreateOperate CPlugin::CreateOperate COperate::SetGlobalParameters COperateDesktop::SetParameter CParameterOperate::GetGlobalParameters
在文件 ParameterOperate.h 第 209 行定义.