连接参数接口。仅在插件内有效。
- 注解
-
使用客户端库参数 (CParameterClient)
为连接参数 ( CParameterConnecter 或其派生类 ) 设置客户端库参数 (CParameterClient)
- 如果连接参数 ( CParameterConnecter 或其派生类 ) 需要客户端库参数 (CParameterClient) 。
- 请在 CConnecter 派生类的构造函数中实例化连接参数。例如:
[Declare CParameterFreeRDP]
- 调用 CConnecter::SetParameter 设置参数指针。例如:
{
qDebug(log) << Q_FUNC_INFO;
}
默认启动一个后台线程。实现一个后台线程处理一个连接。 可与插件接口从 CPluginClient 派生的插件一起使用,用于连接是阻塞模型的。
客户端插件接口。用于建立 CConnecter 实例,它由协议插件实现。
- 默认会自动为连接参数设置 CParameterClient 。详见: CClient::CreateConnecter 。
{
auto it = m_Plugins.find(id);
if(m_Plugins.end() != it)
{
bool bRet = 0;
qDebug(log) << "CreateConnecter id:" << id;
auto plugin = it.value();
if(plugin) {
bRet = QMetaObject::invokeMethod(
plugin,
"CreateConnecter",
Qt::DirectConnection,
Q_ARG(QString, id),
if(!bRet) {
qCritical(log) << "Create CConnecter fail.";
return nullptr;
}
}
}
return pConnecter;
}
virtual CConnecter * CreateConnecter(const QString &id)
新建 CConnecter 指针,所有者是调用者。 当不在使用时,调用者必调用 DeteleConnecter() 须释放指针。 调用者必须连接信号 CConnecter::sigDisconnecte...
客户端库 (CClient) 参数。仅在客户端库 (CClient) 和插件中使用。
CParameterClient * m_pParameterClient
- 如果参数不需要 CParameterClient , 那请在 CConnecter 派生类重载 CConnecter::SetParameterClient 不设置它。
在连接参数 ( CParameterConnecter 或其派生类 ) 中使用客户端库参数 (CParameterClient)
连接参数分类使用
因为可能会有很多参数,所以需要按参数类型分类。每个分类可以从此类派生出一个单独的类。
因为连接参数都有一些基本的参数(例如网络地址等),所以插件的连接参数从 CParameterBase 派生。 而每个分类做为它的成员变量。
例如:
连接参数包括以下几种类型:
- 基本参数
连接基础参数接口。包括基本参数(网络参数等)。 所有插件的连接参数都应从此类派生。
- 用户参数
用户名与验证方式。此类仅在插件内有效。它的界面是 CParameterUserUI
- 视频参数
- 音频参数
其中 CParameterBase , CParameterUser 它需要 CFrmParameterClient , 所以必须从 CParameterConnecter 派生。 其它的类型则不需要,所以从 CParameter 派生。
那么连接参数可以是以上类型的集合:
{
public:
CParameterVideo m_Video;
CParameterAudio m_Audio;
};
m_User(this, "Host"),
m_Video(this),
m_Audio(this)
{}
- 注解
-
- 参见
- CParameterBase CClient::CreateConnecter CConnecter::CConnecter CConnecter::SetParameterClient CConnecter::SetParameter CParameterClient CParameterConnecter::GetParameterClient
在文件 ParameterConnecter.h 第 255 行定义.