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

#include <nros_generated.h>

Data Fields

bool data_available
 
void * entity
 

Detailed Description

One registered handle, as a trigger predicate sees it.

This is the array element rclc_executor_trigger_t walks — rclc's rclc_executor_handle_t narrowed to the two things a trigger may legitimately read. It deliberately does NOT take rclc's name (RFC-0089: an upstream name may be adopted only if the contract is the same), so a ported custom trigger that reaches for handles[i].subscription fails to COMPILE rather than reading a field that is not there.

phase-417 stage 3: the array exists so rclc_executor_trigger_one can compare its obj against the ENTITY POINTER, which is upstream's contract. The previous shape passed only a const bool * readiness array, which carried no entity identity at all — see rclc_executor_trigger_one.

Field Documentation

◆ data_available

bool rclc_executor_trigger_handle_t::data_available

Whether this handle has data to process in the cycle being decided.

◆ entity

void* rclc_executor_trigger_handle_t::entity

The entity this handle was registered from: the rcl_subscription_t *, rcl_timer_t *, rcl_service_t *, rcl_client_t *, rcl_guard_condition_t *, rcl_action_server_t * or rcl_action_client_t * that was passed to the matching nros_executor_add_* / rclc_executor_add_* call.

NULL for a handle whose registering entity is not a C object (nothing in the current surface), which a trigger must treat as "matches nothing".


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