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

#include <nros_generated.h>

Collaboration diagram for rclc_action_server_t:

Data Fields

struct ActionServerInternal _internal
struct rclc_action_server_rclc_state_t _rclc
rclc_accepted_callback_t accepted_callback
uint8_t action_name [256]
size_t action_name_len
rclc_cancel_callback_t cancel_callback
void * context
struct rclc_action_endpoint_hashes_t endpoint_hashes
rclc_goal_callback_t goal_callback
struct rclc_node_ref_t node
struct rcl_action_server_options_t options
struct rclc_qos_t qos
enum rclc_action_server_state_t state
uint8_t type_hash [128]
size_t type_hash_len
uint8_t type_name [256]
size_t type_name_len
const struct rclc_action_type_t * type_support

Detailed Description

An action server the executor dispatches.

phase-487 W4 (RFC-0096 D9, the C half): the executor arena owns the five channels, the goal table and every buffer; this struct holds the arena handle (_internal), the registration description and the one callback record, which the arena's trampolines read with this struct as their context. That record stays here, as the C++ action server's does (phase-456 W3b-ii refused moving it into the arena: the trampolines translate the ABI and reframe the goal payload). A server the caller drives itself is a [rclc_polling_action_server_t].

rclc's rclc_action_server_t (phase-515 C4b). One struct serves rcl's spelling and rclc's: rclc_action_server_init_default and rclc_executor_add_action_server take this.

Field Documentation

◆ _internal

struct ActionServerInternal rclc_action_server_t::_internal

Internal state — set by rclc_executor_attach_action_server. Typed C-ABI handle field (was an opaque blob in earlier versions).

◆ _rclc

struct rclc_action_server_rclc_state_t rclc_action_server_t::_rclc

phase-515 C4b — rclc's typed registration (rclc_executor_add_action_server): its callbacks and goal handles. Unused by a server registered through rclc_action_server_init_with_callbacks.

◆ accepted_callback

rclc_accepted_callback_t rclc_action_server_t::accepted_callback

Accepted callback

◆ action_name

uint8_t rclc_action_server_t::action_name[256]

Action name storage

◆ action_name_len

size_t rclc_action_server_t::action_name_len

Action name length

◆ cancel_callback

rclc_cancel_callback_t rclc_action_server_t::cancel_callback

Cancel callback

◆ context

void* rclc_action_server_t::context

User context pointer

◆ endpoint_hashes

struct rclc_action_endpoint_hashes_t rclc_action_server_t::endpoint_hashes

Issue 1913 — the per-endpoint hashes, copied from the type support at init (static-storage pointers; NULL falls back to type_hash).

◆ goal_callback

rclc_goal_callback_t rclc_action_server_t::goal_callback

Goal callback

◆ node

struct rclc_node_ref_t rclc_action_server_t::node

Pointer to parent node

◆ options

struct rcl_action_server_options_t rclc_action_server_t::options

Phase 189.M3.3.b — scheduling-context slot to bind the action server's executor handle to (the goal-service slot; governs the action's callback dispatch). 0 = inherit the executor / Node default; set via rclc_action_server_init_with_options. When non-zero, rclc_executor_attach_action_server binds the handle after registration. No effect on the L1 polling path.

◆ qos

struct rclc_qos_t rclc_action_server_t::qos

Phase 193.4b — action-server QoS, applied to the three underlying service servers (send_goal / cancel_goal / get_result). The feedback + status publishers keep their own profiles. Defaults to the services profile (RELIABLE+VOLATILE+KEEP_LAST(10)); set via rclc_action_server_init_with_qos.

◆ state

enum rclc_action_server_state_t rclc_action_server_t::state

Current state

◆ type_hash

uint8_t rclc_action_server_t::type_hash[128]

Type hash storage

◆ type_hash_len

size_t rclc_action_server_t::type_hash_len

Type hash length

◆ type_name

uint8_t rclc_action_server_t::type_name[256]

Type name storage

◆ type_name_len

size_t rclc_action_server_t::type_name_len

Type name length

◆ type_support

const struct rclc_action_type_t* rclc_action_server_t::type_support

phase-515 C4b — the descriptor this server was created with, kept so rclc's typed API places a goal, result or feedback in its envelope through the descriptor's codec and layout. A generated static const.


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