函数功能
设置Topic所属DDS通信的QoS策略。
函数原型
OpenHiva::TopicOptions &OpenHiva::TopicOptions::BuildDDSQos(const DdsQosOptions & qosOptions)
参数说明
参数名 |
输入/输出 |
说明 |
qosOptions |
输入 |
DDS消息保存策略参数,数据结构为DdsQosOptions,具体定义如下:
|
struct DdsQosOptions {
QosHistoryPolicy history;
std::size_t depth;
QosReliabilityPolicy reliability;
QosDurabilityPolicy durability;
QosDuration deadline;
QosDuration lifespan;
QosLivelinessPolicy liveliness;
QosDuration leaseDuration;
};
|
相关的数据类型或数据结构如下:
- QosHistoryPolicy
|
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
|
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
|
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
|
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
|
struct QosDuration {
// Seconds
uint64_t sec;
// Nanoseconds
uint64_t nsec;
};
|
|
返回值
返回设置QoS策略后的TopicOptions对象。
使用说明
需要先配置DDS通信方式,该接口才会生效。
注意事项
- 本接口不可重入,同步接口。
- 若用户不调用该接口,则使用QoS系统默认值。