10#ifndef NROS_CPP_QOS_HPP
11#define NROS_CPP_QOS_HPP
81 : reliability_(Reliable), durability_(Volatile), history_(KeepLast),
83 liveliness_lease_ms_(0), avoid_ros_namespace_conventions_(0), tx_express_(0) {}
89 reliability_ = Reliable;
95 reliability_ = BestEffort;
101 durability_ = TransientLocal;
107 durability_ = Volatile;
147 liveliness_lease_ms_ =
ms;
154 avoid_ros_namespace_conventions_ =
on ? 1 : 0;
163 tx_express_ =
on ? 1 : 0;
185 constexpr int history_raw()
const {
return static_cast<int>(history_); }
189 constexpr int depth()
const {
return depth_; }
198 return avoid_ros_namespace_conventions_ != 0;
201 constexpr bool tx_express()
const {
return tx_express_ != 0; }
204 enum Reliability { Reliable = 0, BestEffort = 1 } reliability_;
205 enum Durability { Volatile = 0, TransientLocal = 1 } durability_;
206 enum History { KeepLast = 0, KeepAll = 1 } history_;
209 uint32_t deadline_ms_;
210 uint32_t lifespan_ms_;
211 uint32_t liveliness_lease_ms_;
212 uint8_t avoid_ros_namespace_conventions_;
constexpr int depth() const
Configured queue depth (only meaningful for KEEP_LAST).
Definition qos.hpp:189
constexpr QoS & best_effort()
Set reliability to BEST_EFFORT (fire-and-forget; default for sensors).
Definition qos.hpp:94
constexpr int history_raw() const
History as a raw int (0 = KeepLast, 1 = KeepAll).
Definition qos.hpp:185
constexpr bool avoid_ros_namespace_conventions() const
Whether to skip the /rt/ ROS topic-name prefix.
Definition qos.hpp:197
constexpr uint32_t lifespan_ms() const
Lifespan in ms (0 = infinite).
Definition qos.hpp:193
constexpr QoS & deadline_ms(uint32_t ms)
Definition qos.hpp:127
static constexpr QoS default_profile()
Default profile: RELIABLE + VOLATILE + KEEP_LAST(10).
Definition qos.hpp:170
static constexpr QoS services()
Services profile: RELIABLE + VOLATILE + KEEP_LAST(10).
Definition qos.hpp:176
constexpr QoS & avoid_ros_namespace_conventions(bool on)
Definition qos.hpp:153
Liveliness
Liveliness policy kind. Matches DDS LIVELINESS_QOS_POLICY.
Definition qos.hpp:71
@ LivelinessAutomatic
Definition qos.hpp:73
@ LivelinessManualByTopic
Definition qos.hpp:74
@ LivelinessNone
Definition qos.hpp:72
@ LivelinessManualByNode
Definition qos.hpp:75
constexpr QoS & reliable()
Set reliability to RELIABLE (acked transport, retransmits on loss).
Definition qos.hpp:88
static constexpr QoS sensor_data()
Sensor-data profile: BEST_EFFORT + VOLATILE + KEEP_LAST(5).
Definition qos.hpp:173
constexpr QoS & tx_express(bool on)
Definition qos.hpp:162
constexpr uint32_t deadline_ms() const
Deadline in ms (0 = infinite).
Definition qos.hpp:191
constexpr QoS()
Definition qos.hpp:80
constexpr QoS & lifespan_ms(uint32_t ms)
Sample expiry. 0 = infinite.
Definition qos.hpp:133
constexpr int liveliness_raw() const
Liveliness kind as a raw int (0..3).
Definition qos.hpp:187
constexpr int reliability_raw() const
Reliability as a raw int (0 = Reliable, 1 = BestEffort).
Definition qos.hpp:181
constexpr QoS & keep_last(int depth)
Definition qos.hpp:113
constexpr QoS & durability_volatile()
Set durability to VOLATILE — late joiners get nothing (default).
Definition qos.hpp:106
constexpr uint32_t liveliness_lease_ms() const
Liveliness lease in ms (0 = infinite).
Definition qos.hpp:195
constexpr QoS & liveliness(Liveliness kind)
Definition qos.hpp:140
constexpr int durability_raw() const
Durability as a raw int (0 = Volatile, 1 = TransientLocal).
Definition qos.hpp:183
constexpr QoS & keep_all()
Use KEEP_ALL history (bounded by transport).
Definition qos.hpp:120
constexpr bool tx_express() const
Whether this publisher's samples bypass transport tx batching.
Definition qos.hpp:201
constexpr QoS & transient_local()
Set durability to TRANSIENT_LOCAL — late joiners get the last value.
Definition qos.hpp:100
constexpr QoS & liveliness_lease_ms(uint32_t ms)
Liveliness lease duration. 0 = infinite.
Definition qos.hpp:146
nros_cpp_qos_history_t
Definition qos.hpp:31
@ NROS_CPP_QOS_KEEP_LAST
Definition qos.hpp:32
@ NROS_CPP_QOS_KEEP_ALL
Definition qos.hpp:33
nros_cpp_qos_liveliness_t
Definition qos.hpp:35
@ NROS_CPP_QOS_LIVELINESS_MANUAL_BY_NODE
Definition qos.hpp:39
@ NROS_CPP_QOS_LIVELINESS_AUTOMATIC
Definition qos.hpp:37
@ NROS_CPP_QOS_LIVELINESS_MANUAL_BY_TOPIC
Definition qos.hpp:38
@ NROS_CPP_QOS_LIVELINESS_NONE
Definition qos.hpp:36
nros_cpp_qos_durability_t
Definition qos.hpp:27
@ NROS_CPP_QOS_VOLATILE
Definition qos.hpp:28
@ NROS_CPP_QOS_TRANSIENT_LOCAL
Definition qos.hpp:29
nros_cpp_qos_reliability_t
Definition qos.hpp:23
@ NROS_CPP_QOS_RELIABLE
Definition qos.hpp:24
@ NROS_CPP_QOS_BEST_EFFORT
Definition qos.hpp:25
enum nros_cpp_qos_durability_t durability
Definition qos.hpp:43
uint32_t liveliness_lease_ms
Definition qos.hpp:49
uint32_t lifespan_ms
Definition qos.hpp:48
enum nros_cpp_qos_history_t history
Definition qos.hpp:44
uint8_t tx_express
Definition qos.hpp:51
enum nros_cpp_qos_liveliness_t liveliness_kind
Definition qos.hpp:45
enum nros_cpp_qos_reliability_t reliability
Definition qos.hpp:42
uint8_t avoid_ros_namespace_conventions
Definition qos.hpp:50
uint32_t deadline_ms
Definition qos.hpp:47
int depth
Definition qos.hpp:46