# DomainParticipant

DomainParticipant(域参与者)用于创建和管理在同一数据域内进行交互的各类实体对象,包含了应用软件在某个数据域内进行通信所需的线程和资源,是应用软件在数据域内的实例。DomainParticipant 的主要接口如下表所示,本文只对常用接口进行详细说明,其他可参考 DDS 规范。

表 1 DomainParticipant 接口
接口函数 接口功能
create_topic 创建主题
delete_topic 删除主题
create_publisher 创建发布者
delete_publisher 删除发布者
create_subscriber 创建订阅者
delete_subscriber 删除订阅者

# Create_topic

1) 函数原型

Topic* create_topic(const string& topicName,
		const string& typeName,
		const TopicQos& QoS,
		TopicListener * pTopicListener,
		StatusMask mask);
1
2
3
4
5

2) 功能简介

通过传入的 topicName,typeName,Qos 和监听器参数来创建唯一的主题。创建完成后可当参数用于创建对应 DataWriter 和 DataReader。

3) 输入参数

const string& topicName [in]:主题名,是主题的唯一标识,使用长度不超过 255 的字符串表示。 const string& typeName [in]:类型名称,用于指定主题对应什么数据类型,使用长度不超过 255 的字符串表示,且应当符合数据类型定义(比如不能用数字开头)。

const TopicQos& QoS [in]:主题 QoS,表示本主题采用的 QoS 策略。

TopicListener * pTopicListener [in]:主题监听器,当主题发生特定事件时,监听器将调用回调函数进行响应。

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

4) 输出参数

无。

5) 返回值

若成功执行则返回创建成功的主题对象的指针,否则返回空指针 NULL。

# Delete_topic

1) 函数原型

ReturnCode_t delete_topic(Topic*& pTopic);
1

2) 功能简介

删除指定主题。注意删除主题之前需要对删除对应主题创建的 DataWriter 和 DataReader,否则会删除失败。

3) 输入参数

Topic*& pTopic [in]:要删除的主题对象。

4) 输出参数

无。

5) 返回值

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

# Create_publisher

1) 函数原型

Publisher* create_publisher(const PublisherQos& QoS,
		PublisherListener * pPublisherListener,
		StatusMask mask);

1
2
3
4

2) 功能简介

通过传入的 Qos,和监听器创建发布者。创建完成的发布者可用于后续对一组 DataWriter 进行管理。

3) 输入参数

PublisherQos& QoS [in]:发布者 QoS,表示本发布者采用的 QoS 策略。

PublisherListener * pPublisherListener[in]:发布者监听器,当发布者或其所属的 DataWriter 发生特定事件时,监听器将调用回调函数进行响应。

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

4) 输出参数

无。

5) 返回值

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

# Delete_publisher

1) 函数原型

ReturnCode_t delete_publisher(Publisher*& pPublisher);
1

2) 功能简介

删除指定发布者。

3) 输入参数

Publisher*& pPublisher [in]:要删除的发布者对象。

4) 输出参数

无。

5) 返回值

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

# Create_subscriber

1) 函数原型

Subscriber* create_subscriber(const SubscriberQos& QoS,
		SubscriberListener* pSubscriberListener,
		StatusMask mask);

1
2
3
4

2) 功能简介

通过传入的 Qos,和监听器创建订阅者。创建完成的订阅者可用于后续对一组 DataReader 进行管理。

3) 输入参数

SubscriberQos& QoS [in]:订阅者 QoS,表示本订阅者采用的 QoS 策略。

SubscriberListener* pSubscriberListener [in]:订阅者监听器,当订阅者或其所属的 DataReader 发生特定事件时,监听器将调用回调函数进行响应。

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

4) 输出参数

无。

5) 返回值

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

# Delete_subscriber

1) 函数原型

ReturnCode_t delete_subscriber(Subscriber*& pSubscriber);
1

2) 功能简介

删除指定的订阅者对象。

3) 输入参数

Subscriber*& pSubscriber [in]:要删除的订阅者对象。

4) 输出参数

无。

5) 返回值

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