nros rmw-cffi
C vtable for plugging a third-party RMW backend into nros
Loading...
Searching...
No Matches
Data Fields
nros_rmw_qos_t Struct Reference

#include <rmw_entity.h>

Data Fields

uint16_t _reserved0
 
uint8_t _reserved1 [3]
 
uint8_t avoid_ros_namespace_conventions
 
uint32_t deadline_ms
 
uint16_t depth
 
uint8_t durability
 
uint8_t history
 
uint32_t lifespan_ms
 
uint8_t liveliness_kind
 
uint32_t liveliness_lease_ms
 
uint8_t reliability
 
uint32_t rx_buffer_hint
 

Detailed Description

Full DDS-shaped QoS profile.

Matches the field set of upstream rmw_qos_profile_t. Backends advertise per-policy support via the runtime's supported_qos_policies() query; entities created with a profile the active backend can't honour return NROS_RMW_RET_INCOMPATIBLE_QOS synchronously at create time — no silent downgrade.

Zero-valued fields ("off") preserve the cheap default for apps that don't request the policy:

depth is uint16_t (max 65 535). Embedded ROS application queue depths are typically 1–100; the 16-bit width saves two bytes per entity vs the upstream 32-bit choice.

Field Documentation

◆ _reserved0

uint16_t nros_rmw_qos_t::_reserved0

Reserved; must be zero.

◆ _reserved1

uint8_t nros_rmw_qos_t::_reserved1[3]

Reserved; must be zero.

◆ avoid_ros_namespace_conventions

uint8_t nros_rmw_qos_t::avoid_ros_namespace_conventions

If non-zero, topic-name encoding skips the ROS /rt/ prefix and uses raw application names. Matches upstream avoid_ros_namespace_conventions. 0 = false, non-zero = true. (uint8_t instead of bool; sizeof(_Bool) is impl- defined per C99 — uint8_t keeps the layout stable across toolchains.)

◆ deadline_ms

uint32_t nros_rmw_qos_t::deadline_ms

Subscriber: max acceptable inter-arrival time, ms. Publisher: max acceptable inter-publish (offered rate), ms. 0 = infinite (no deadline).

◆ depth

uint16_t nros_rmw_qos_t::depth

◆ durability

uint8_t nros_rmw_qos_t::durability
See also
NROS_RMW_DURABILITY_*

◆ history

uint8_t nros_rmw_qos_t::history
See also
NROS_RMW_HISTORY_*

◆ lifespan_ms

uint32_t nros_rmw_qos_t::lifespan_ms

Sample expiry, ms. Subscriber filters samples older than this. 0 = infinite (no expiry).

◆ liveliness_kind

uint8_t nros_rmw_qos_t::liveliness_kind

◆ liveliness_lease_ms

uint32_t nros_rmw_qos_t::liveliness_lease_ms

Liveliness lease, ms. Publisher must assert liveliness within this window or be considered dead. 0 = infinite.

◆ reliability

uint8_t nros_rmw_qos_t::reliability
See also
NROS_RMW_RELIABILITY_*

◆ rx_buffer_hint

uint32_t nros_rmw_qos_t::rx_buffer_hint

Phase 231 (RFC-0038) — subscription receive-buffer size hint, bytes. Carries TopicInfo::rx_buffer_hint to create_subscriber so a size-classing backend (zenoh-pico) can pick a small/large receive buffer. 0 = unset. Appended at the tail (ABI-append); only create_subscriber reads it.


The documentation for this struct was generated from the following file: