昇腾社区首页
中文
注册

OpenHiva::TopicOptions::BuildDDSQos

函数功能

设置Topic所属DDS通信的QoS策略。

函数原型

OpenHiva::TopicOptions &OpenHiva::TopicOptions::BuildDDSQos(const DdsQosOptions & qosOptions)

参数说明

参数名

输入/输出

说明

qosOptions

输入

DDS消息保存策略参数,数据结构为DdsQosOptions,具体定义如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
struct DdsQosOptions {
    QosHistoryPolicy history;
    std::size_t depth;
    QosReliabilityPolicy reliability;
    QosDurabilityPolicy durability;
    QosDuration deadline;
    QosDuration lifespan;
    QosLivelinessPolicy liveliness;
    QosDuration leaseDuration;
};

相关的数据类型或数据结构如下:

  • QosHistoryPolicy
    1
    2
    3
    4
    5
    6
    enum class QosHistoryPolicy: uint32_t {
        DDS_QOS_HISTORY_POLICY_KEEP_LAST,
        DDS_QOS_HISTORY_POLICY_KEEP_ALL,
        DDS_QOS_HISTORY_POLICY_SYSTEM_DEFAULT,
        DDS_QOS_HISTORY_POLICY_UNKNOWN
    };
    
  • QosReliabilityPolicy
    1
    2
    3
    4
    5
    6
    enum class QosReliabilityPolicy: uint32_t {
        DDS_QOS_RELIABILITY_POLICY_RELIABLE,
        DDS_QOS_RELIABILITY_POLICY_BEST_EFFORT,
        DDS_QOS_RELIABILITY_POLICY_SYSTEM_DEFAULT,
        DDS_QOS_RELIABILITY_POLICY_UNKNOWN
    };
    
  • QosDurabilityPolicy
    1
    2
    3
    4
    5
    6
    enum class QosDurabilityPolicy: uint32_t {
        DDS_QOS_DURABILITY_POLICY_VOLATILE,
        DDS_QOS_DURABILITY_POLICY_TRANSIENT_LOCAL,
        DDS_QOS_DURABILITY_POLICY_SYSTEM_DEFAULT,
        DDS_QOS_DURABILITY_POLICY_UNKNOWN
    };
    
  • QosLivelinessPolicy
    1
    2
    3
    4
    5
    6
    enum class QosLivelinessPolicy: uint32_t {
        DDS_QOS_LIVELINESS_POLICY_AUTOMATIC,
        DDS_QOS_LIVELINESS_POLICY_MANUAL_BY_TOPIC,
        DDS_QOS_LIVELINESS_POLICY_SYSTEM_DEFAULT,
        DDS_QOS_LIVELINESS_POLICY_UNKNOWN
    };
    
  • QosDuration
    1
    2
    3
    4
    5
    6
    struct QosDuration {
        // Seconds
        uint64_t sec;
        // Nanoseconds
        uint64_t nsec;
    };
    

返回值

返回设置QoS策略后的TopicOptions对象。

使用说明

需要先配置DDS通信方式,该接口才会生效。

注意事项

  • 本接口不可重入,同步接口。
  • 若用户不调用该接口,则使用QoS系统默认值。