nros C API
Lightweight ROS 2 client for embedded real-time systems
Loading...
Searching...
No Matches
Data Fields
nros_node_t Struct Reference

#include <nros_generated.h>

Collaboration diagram for nros_node_t:
Collaboration graph
[legend]

Data Fields

uint8_t _reserved [3]
 
uint32_t domain_id_override
 
const struct nros_executor_texecutor
 
uint8_t name [64]
 
size_t name_len
 
uint8_t namespace_ [128]
 
size_t namespace_len
 
uint8_t node_id
 
const struct nros_qos_override_tqos_overrides
 
size_t qos_overrides_len
 
uint8_t rmw_name [32]
 
size_t rmw_name_len
 
uint8_t sched_context_id
 
enum nros_node_state_t state
 
const struct nros_support_tsupport
 

Detailed Description

Node structure.

Represents a ROS 2 node with a name and namespace.

Field Documentation

◆ _reserved

uint8_t nros_node_t::_reserved[3]

Reserved for future use (alignment + ABI stability).

◆ domain_id_override

uint32_t nros_node_t::domain_id_override

Per-Node domain ID. NROS_DOMAIN_ID_INHERIT (== u32::MAX) means "use the support context's domain_id".

◆ executor

const struct nros_executor_t* nros_node_t::executor

Phase 156 / 104.C.8.b — executor pointer for the multi-Session dispatch path. nros_executor_node_init populates this when the Node is bound; per-entity nros_*_init paths (nros_publisher_init, nros_subscription_init, etc.) branch on node_id != 0 && !executor.is_null() to route through Executor::node_session_mut(NodeId) instead of the legacy support-based dispatch. NULL = legacy single-Node path (nros_node_init / nros_node_init_ex).

◆ name

uint8_t nros_node_t::name[64]

Node name storage

◆ name_len

size_t nros_node_t::name_len

Node name length

◆ namespace_

uint8_t nros_node_t::namespace_[128]

Namespace storage

◆ namespace_len

size_t nros_node_t::namespace_len

Namespace length

◆ node_id

uint8_t nros_node_t::node_id

Opaque NodeId slot returned by Executor::node_builder(...).build() when this Node is bound to an Executor. 0 = primary Node (legacy single-Node path). Internal use only — readers should treat as opaque.

◆ qos_overrides

const struct nros_qos_override_t* nros_node_t::qos_overrides

Pointer to a &'static-lifetime array of [nros_qos_override_t], or null. The caller (a generated entry / a hand-written app) owns the storage for the node's lifetime.

◆ qos_overrides_len

size_t nros_node_t::qos_overrides_len

Number of entries in qos_overrides. 0 = none.

◆ rmw_name

uint8_t nros_node_t::rmw_name[32]

RMW backend name (UTF-8, NUL-terminated within rmw_name_len). Empty (rmw_name_len == 0) selects the first-registered backend.

◆ rmw_name_len

size_t nros_node_t::rmw_name_len

Length of rmw_name in bytes (excluding NUL). 0 = inherit.

◆ sched_context_id

uint8_t nros_node_t::sched_context_id

SchedContext slot to inherit on every handle created by this Node (Phase 104.C.4). 0 = inherit the executor's default Fifo context.

◆ state

enum nros_node_state_t nros_node_t::state

Current state

◆ support

const struct nros_support_t* nros_node_t::support

Pointer to parent support context


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