|
nros C++ API
Lightweight ROS 2 client for embedded real-time systems (C++ headers)
|
#include <qos.hpp>

Public Member Functions | |
| constexpr bool | avoid_ros_namespace_conventions () const |
Whether to skip the /rt/ ROS topic-name prefix. | |
| constexpr QoS & | avoid_ros_namespace_conventions (bool on) |
| constexpr QoS & | best_effort () |
Set reliability to BEST_EFFORT (fire-and-forget; default for sensors). | |
| constexpr Duration | deadline () const |
The deadline window. Duration() (zero) = infinite. | |
| constexpr QoS & | deadline (const Duration &d) |
| constexpr int | depth () const |
Configured queue depth (only meaningful for KEEP_LAST). | |
| constexpr DurabilityPolicy | durability () const |
| The durability policy. | |
| constexpr QoS & | durability_volatile () |
Set durability to VOLATILE — late joiners get nothing (default). | |
| constexpr HistoryPolicy | history () const |
| The history policy. | |
| constexpr QoS & | keep_all () |
Use KEEP_ALL history (bounded by transport). | |
| constexpr QoS & | keep_last (int depth) |
| constexpr Duration | lifespan () const |
The lifespan window. Duration() (zero) = infinite. | |
| constexpr QoS & | lifespan (const Duration &d) |
| constexpr LivelinessPolicy | liveliness () const |
| The liveliness policy kind. | |
| constexpr QoS & | liveliness (LivelinessPolicy kind) |
| constexpr Duration | liveliness_lease_duration () const |
The liveliness lease window. Duration() (zero) = infinite. | |
| constexpr QoS & | liveliness_lease_duration (const Duration &d) |
| constexpr | QoS () |
| constexpr | QoS (::size_t depth) |
| constexpr ReliabilityPolicy | reliability () const |
| The reliability policy. | |
| constexpr QoS & | reliable () |
Set reliability to RELIABLE (acked transport, retransmits on loss). | |
| constexpr QoS & | transient_local () |
Set durability to TRANSIENT_LOCAL — late joiners get the last value. | |
| constexpr bool | tx_express () const |
| Whether this publisher's samples bypass transport tx batching. | |
| constexpr QoS & | tx_express (bool on) |
Static Public Member Functions | |
| static constexpr QoS | default_profile () |
Default profile: RELIABLE + VOLATILE + KEEP_LAST(10). | |
| static constexpr QoS | sensor_data () |
Sensor-data profile: BEST_EFFORT + VOLATILE + KEEP_LAST(5). | |
| static constexpr QoS | services () |
Services profile: RELIABLE + VOLATILE + KEEP_LAST(10). | |
Friends | |
| constexpr QoS | detail::qos_from_ffi (const nros_cpp_qos_t &f) |
QoS profile for publishers and subscriptions.
Mirrors rclcpp::QoS with chainable setters and predefined profiles. All methods are constexpr — profiles can be computed at compile time.
Phase 108.B.7 — extended with full DDS QoS surface (deadline, lifespan, liveliness kind + lease, avoid_ros_namespace_conventions). Backends advertise per-policy support; entities created with a profile the active backend can't honour return NROS_CPP_RET_INCOMPATIBLE_QOS synchronously at create time.
Phase 379 W5 — the policy enums moved to namespace scope, the getters return them instead of int, and the three time windows take and return rclcpp::Duration instead of carrying an _ms suffix. The old spellings were deleted by phase-482 W6.
|
inlineconstexpr |
Default QoS: reliable, volatile, keep-last(10), automatic liveliness, no deadline / lifespan / lease.
|
inlineconstexpr |
rclcpp's depth ctor: QoS(1) == default profile with keep-last(1). IMPLICIT, as upstream's QoS(size_t history_depth) is, so a bare depth converts wherever a profile is expected (create_publisher<M>(t, 10)). Before phase-483 this was an explicit int ctor on nros::QoS and a derived rclcpp::QoS added the implicit one; the two are one class now.
Whether to skip the /rt/ ROS topic-name prefix.
Skip the ROS /rt/ topic-name prefix. Off by default; enable when interoperating with non-ROS DDS endpoints.
Set reliability to BEST_EFFORT (fire-and-forget; default for sensors).
The deadline window. Duration() (zero) = infinite.
Subscriber max-inter-arrival / publisher offered-rate. A zero or negative duration = infinite (no deadline check).
The C ABI underneath is uint32_t milliseconds, so a sub-millisecond window ROUNDS UP to 1 ms — it never truncates to 0, which the ABI reads as infinity. Above ~49.7 days it saturates. See detail::qos_window_ms.
Default profile: RELIABLE + VOLATILE + KEEP_LAST(10).
Configured queue depth (only meaningful for KEEP_LAST).
|
inlineconstexpr |
The durability policy.
Set durability to VOLATILE — late joiners get nothing (default).
|
inlineconstexpr |
The history policy.
Use KEEP_ALL history (bounded by transport).
Use KEEP_LAST history with the given depth.
| depth | maximum number of messages buffered per entity. |
The lifespan window. Duration() (zero) = infinite.
Sample expiry. A zero or negative duration = infinite. Same millisecond boundary as deadline().
|
inlineconstexpr |
The liveliness policy kind.
|
inlineconstexpr |
Liveliness kind. Pair with liveliness_lease_duration() for MANUAL_BY_TOPIC / MANUAL_BY_NODE. AUTOMATIC is the default.
The liveliness lease window. Duration() (zero) = infinite.
Liveliness lease duration. A zero or negative duration = infinite. Same millisecond boundary as deadline().
|
inlineconstexpr |
The reliability policy.
Set reliability to RELIABLE (acked transport, retransmits on loss).
Sensor-data profile: BEST_EFFORT + VOLATILE + KEEP_LAST(5).
Services profile: RELIABLE + VOLATILE + KEEP_LAST(10).
Set durability to TRANSIENT_LOCAL — late joiners get the last value.
Whether this publisher's samples bypass transport tx batching.
Phase 282 (#145) — mark this publisher "express": its samples bypass transport tx batching (sent immediately even when the batching knob is on). A transport hint for control-tier / latency-sensitive topics; ignored on subscriptions and by backends without batching.
|
friend |