# DomainParticipant
DomainParticipant(域参与者)用于创建和管理在同一数据域内进行交互的各类实体对象,包含了应用软件在某个数据域内进行通信所需的线程和资源,是应用软件在数据域内的实例。DomainParticipant 的主要接口如下表所示,本文只对常用接口进行详细说明,其他可参考 DDS 规范。
接口函数 | 接口功能 |
---|---|
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);
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);
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);
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);
2) 功能简介
删除指定发布者。
3) 输入参数
Publisher*& pPublisher [in]:要删除的发布者对象。
4) 输出参数
无。
5) 返回值
若成功执行则返回创建 0(RETCODE_OK),否则返回错误码。
# Create_subscriber
1) 函数原型
Subscriber* create_subscriber(const SubscriberQos& QoS,
SubscriberListener* pSubscriberListener,
StatusMask mask);
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);
2) 功能简介
删除指定的订阅者对象。
3) 输入参数
Subscriber*& pSubscriber [in]:要删除的订阅者对象。
4) 输出参数
无。
5) 返回值
若成功执行则返回创建 0(RETCODE_OK),否则返回错误码。