ZBLOG

This example shows how to configure the persistence service using PERSISTENCE:SQLITE3 built-in plugin plugin both from C++ and using eProsima Fast DDS XML profile files (see XML profiles). C++XML /* * In order for this example to be self-contain...

这个示例展示了如何使用 PERSISTENCE:SQLITE3 内置插件从 C++ 代码和 eProsima Fast DDS XML 配置文件配置持久性服务。

C++ 示例解释

  1. 域参与者配置

    • 创建一个 DomainParticipantQos 对象,并通过添加属性来配置持久性服务插件,指定使用 SQLite3。
    • 指定 SQLite 数据库文件名为 persistence.db
    • 使用这些 QoS 设置创建一个域参与者。
  2. 类型与类型支持的创建

    • 创建一个名为 persistence_topic_type 的结构体类型,用于定义将要传输的数据格式。
    • 该结构体包含两个成员:一个无符号长整型 index 和一个字符串 message。这部分可以通过 IDL 文件和 Fast DDS-Gen 自动生成,但是这里是手动构建的。
    • 将这两个成员添加到结构体中,并构建动态类型。
    • 注册该类型以供数据写入和读取使用。
  3. 创建主题、发布者和订阅者

    • 使用之前定义的类型创建一个主题(topic),名称为 “persistence_topic_name”。
    • 创建默认 QoS 的发布者(Publisher)和订阅者(Subscriber)。
  4. 配置数据写入器 (DataWriter) 的持久性

    • 配置数据写入器的 QoS,设置其持久性为 TRANSIENT_DURABILITY_QOS,这意味着即使没有读者在线,数据也会被存储并在有读者连接时可用。
    • 为数据写入器配置持久化 GUID,以便它能够使用持久性服务。
  5. 配置数据读取器 (DataReader) 的持久性

    • 类似于写入器,为数据读取器设置相同的持久性 QoS 和 GUID,以确保它能够正确接收已存储的数据。

注意事项

  • 以上示例代码通过程序matically 创建所有实体(例如,数据类型及其支持)来实现自包含。用户也可以根据需要使用 IDL 文件与 Fast DDS-Gen 工具进行替换生成。
  • 若需更多关于如何创建 DomainParticipants、DataReaders 和 DataWriters 的信息,可以参考相应的文档链接。


    内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=7273

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?