# DomainParticipantFactory

DomainParticipantFactory(域参与者工厂)是中间件中预先存在的单例对象,用于创建和销毁域参与者。DomainParticipantFactory 的主要接口如下表所示,本文只对常用接口进行详细说明,其他可参考 DDS 规范。

表 1 DomainParticipantFactory 接口
接口函数 接口功能
create_participant 创建域参与者
delete_participant 删除域参与者

# Create_participant

1) 函数原型

DomainParticipant* create_participant(_DOMAINID_T DomainId,
	const DomainParticipantQos& QoS,
	DomainParticipantListener* pDomainParticipantListener,
	StatusMask mask);
1
2
3
4

2) 功能简介

通过传入的域,Qos 和监听器参数来创建唯一的域参与者,创建完成后可用于后续对 Publisher 和 Subscriber 的管理。

3) 输入参数

_DOMAINID_T DomainId [in]:域 ID,域参与者所在的域的唯一标识。

DomainParticipantQos& QoS [in]:域参与者 QoS,表示本域参与者采用的 QoS 策略。

DomainParticipantListener* pDomainParticipantListener [in]:域参与者监听器,当域参与者发生特定事件时,监听器将调用回调函数进行响应。

StatusMask mask[in]:状态掩码,用于指定哪些特定事件会触发监听器的回调。

4) 输出参数

无。

5) 返回值

若成功执行则返回创建成功的域参与者对象的指针,否则返回空指针 NULL。

# Delete_participant

1) 函数原型

ReturnCode_t delete_participant(
		DomainParticipant* & pDomainParticipant);
1
2

2) 功能简介

删除域参与者。注意删除域参与者之前需要首先删除该域参与者创建的所有实体。

3) 输入参数

DomainParticipant* & pDomainParticipant [in]:要删除的域参与者对象。

4) 输出参数

无。

5) 返回值

若成功执行则返回创建 0(RETCODE_OK),否则返回错误码。